1.概述
我們已經對USB硬件和數據的四種傳輸類型有了一個基本的了解。
控制傳輸(Control Transfers)
批量傳輸(Bulk Data Transfers)
中斷傳輸(Interrupt Data Transfers)
同步傳輸(Isochronous Data Transfers):
下面我們通過一個例子看一下USB的具體工作過程。在此我們用一個比較實用的例子,就是把我們的板子用USB連接至PC,然后在PC端出現一個模擬串口,通過串口助手打開這個串口,然后實現數據的雙向傳輸。最后我們聊一下很多工程師都會忽視的USB認證問題。
2.例程
我們打開ST的Cube庫中的CDC例程:
STM32Cube_FW_F1_V1.8.0ProjectsSTM3210C_EVALApplicationsUSB_DeviceCDC_StandaloneMDK-ARMProject.uvprojx
這個例程用到USB的同時還會用到USART,USB從PC端收到數據后會轉發到USART,從USART接收到消息會上傳至PC。我們可以把USART的TX和RX短接,這樣從PC端下發的數據會原樣回傳給PC端。
這個例程使用的硬件是STM3210C-EVAL,原理圖可以在stmcu.org.cn找到。如果我們使用的是其它板子,就需要在這個工程基礎上做一些改動。比如現在我們使用STM32F105RBT6,8M晶振,串口用PTA2,PTA3,那么我們的要做如下修改:
首先,修改使用的MCU:
然后修改時鐘初始化部分。下圖為STM32F105時鐘模塊示意圖。USB工作需要48MHz的時鐘。
(STM32F105xx Datasheet)
-
單片機
+關注
關注
6076文章
45498瀏覽量
670582 -
數據傳輸
+關注
關注
9文章
2201瀏覽量
67594 -
USB開發
+關注
關注
0文章
5瀏覽量
9858
發布評論請先 登錄
別讓USB拖后腿!硬件參考設計+軟件開發API,都幫你整理好了
DA14535 USB開發套件硬件解析:開啟低功耗藍牙開發新征程
EZ-USB? FX5 DVK (KIT_FX5_FMC_001) 套件開發指南
EZ-USB? FX10 DVK (KIT_FX10_FMC_001) 套件指南:助力視頻音頻流應用開發
EZ-USB? FX2G3 DVK快速上手:開啟硬件開發新體驗
構建可靠USB應用:硬件設計要點與LuatOS開發技巧!
USB設計操作指南:硬件關鍵與LuatOS API開發技巧!
USB設計全程攻略:硬件關鍵點與LuatOS API開發指南!
進線電抗器安裝位置不對,效果大打折扣!你中招了嗎?
使用nRF52840芯片的USB Host 功能參考例程
電商API常見錯誤排查指南:避免集成陷阱
工業人必讀!USB對比PCIE延遲分析,選錯接口你可能多花50%成本!
USB開發的這個錯誤你犯了嗎
評論