1.概述
我們已經(jīng)對(duì)USB硬件和數(shù)據(jù)的四種傳輸類型有了一個(gè)基本的了解。
控制傳輸(Control Transfers)
批量傳輸(Bulk Data Transfers)
中斷傳輸(Interrupt Data Transfers)
同步傳輸(Isochronous Data Transfers):
下面我們通過(guò)一個(gè)例子看一下USB的具體工作過(guò)程。在此我們用一個(gè)比較實(shí)用的例子,就是把我們的板子用USB連接至PC,然后在PC端出現(xiàn)一個(gè)模擬串口,通過(guò)串口助手打開這個(gè)串口,然后實(shí)現(xiàn)數(shù)據(jù)的雙向傳輸。最后我們聊一下很多工程師都會(huì)忽視的USB認(rèn)證問(wèn)題。
2.例程
我們打開ST的Cube庫(kù)中的CDC例程:
STM32Cube_FW_F1_V1.8.0ProjectsSTM3210C_EVALApplicationsUSB_DeviceCDC_StandaloneMDK-ARMProject.uvprojx
這個(gè)例程用到USB的同時(shí)還會(huì)用到USART,USB從PC端收到數(shù)據(jù)后會(huì)轉(zhuǎn)發(fā)到USART,從USART接收到消息會(huì)上傳至PC。我們可以把USART的TX和RX短接,這樣從PC端下發(fā)的數(shù)據(jù)會(huì)原樣回傳給PC端。
這個(gè)例程使用的硬件是STM3210C-EVAL,原理圖可以在stmcu.org.cn找到。如果我們使用的是其它板子,就需要在這個(gè)工程基礎(chǔ)上做一些改動(dòng)。比如現(xiàn)在我們使用STM32F105RBT6,8M晶振,串口用PTA2,PTA3,那么我們的要做如下修改:
首先,修改使用的MCU:
然后修改時(shí)鐘初始化部分。下圖為STM32F105時(shí)鐘模塊示意圖。USB工作需要48MHz的時(shí)鐘。
(STM32F105xx Datasheet)
-
單片機(jī)
+關(guān)注
關(guān)注
6026文章
44456瀏覽量
631027 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1746瀏覽量
64337 -
USB開發(fā)
+關(guān)注
關(guān)注
0文章
5瀏覽量
9700
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論