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)
審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
相關推薦
在嵌入式應用中,有可能發生各種各樣的錯誤,系統必須能夠檢測到這些錯誤并作出適當的響應。RTOS通常內置了一些錯誤檢查功能,用于檢測錯誤并向應用提供響應
發表于 01-03 14:44
?90次閱讀
了解 LIN總線的錯誤類型對于開發、測試均具有極大的好處。通過對錯誤類型的全面了解,開發人員可以提前預測和避免潛在的問題,增強系統的穩定性、容錯能力和安全性,從而提升系統整體的可靠性和
發表于 01-02 17:27
?415次閱讀
GND(接地)連接在電子設計和硬件開發中至關重要,錯誤的GND連接可能導致電路不穩定、信號干擾甚至設備損壞。以下是一些常見的GND連接錯誤及其解決方案: 一、GND網絡未連接 問題描述 : 在
發表于 11-29 16:02
?1381次閱讀
在SQL數據庫開發和管理中,常見的錯誤代碼及其解決方案可以歸納如下: 一、語法錯誤(Syntax Errors) 錯誤代碼 :無特定代碼,但通常會在
發表于 11-19 10:21
?1901次閱讀
:錯誤處理能夠確保程序在遇到異常情況時不會崩潰,而是能夠優雅地處理問題。 提升用戶體驗 :通過適當的錯誤處理,可以給用戶提供清晰的錯誤信息,避免用戶感到困惑。 便于調試和維護 :良好的錯誤
發表于 11-01 17:47
?875次閱讀
電子發燒友網站提供《解決USB音頻DAC和解碼器設計中的計數錯誤.pdf》資料免費下載
發表于 10-21 10:03
?0次下載
電子發燒友網站提供《電感很燙是短路了嗎.docx》資料免費下載
發表于 09-04 11:31
?0次下載
多功能數字接口轉發器,讓USB和串行接口輕松實現雙向通信! 高性能USB轉串口適配器,助力你的嵌入式程序開發! USB轉串口適配器可編程
發表于 08-06 09:54
?244次閱讀
本模塊主要提供管理USB設備的相關功能,包括查詢USB設備列表、批量數據傳輸、控制命令傳輸、權限控制等。
發表于 07-05 17:34
?752次閱讀
usb fallback 這個是主要什么作用
發表于 07-04 07:21
“被動錯誤標志”。站檢測到無論是位錯誤、填充錯誤、形式錯誤,還是應答錯誤,這個站會在下一位時發出
發表于 04-26 08:25
?1629次閱讀
”,而在SBBulkSourceSink固件中沒有顯示這個錯誤,可不可以證明我的FPGA和USB之間通信成功?另外,我該如何排查FPGA與USB之間的芯片通信問題?
發表于 02-27 06:46
這篇開始使用 M62 板子來實現 USB 的設備開發,首先從最簡單的 USB HID 鍵盤開始。固件的 SDK 使用的是 CherryUSB 開源 USB 固件。CherryUSB 是
發表于 02-26 11:31
?1937次閱讀
英飛凌科技(Infineon Technologies)近日宣布推出全新的CYUSBS236 USB 轉串行通信(雙通道)開發套件。該開發套件基于英飛凌的CY7C65215 USB 串
發表于 01-24 17:12
?907次閱讀
VB運行時錯誤429代表不能創建對象的錯誤。這個錯誤可能會發生在使用CreateObject函數或New關鍵字創建對象時。 這種錯誤通常發生
發表于 01-09 11:07
?2362次閱讀
評論