GD32 USB除錯總結

2021-07-26 21:11:33 字數 524 閱讀 4947

1 usb通訊都是基於中斷完成的,主要使用兩個中斷:復位中斷、資料傳輸中斷。

1.1 復位中斷

對於復位中斷來講,裝置插入主機後,並設定連線,主機識別裝置連線後,會復位裝置。復位後使用0預設位址,對裝置進行列舉,列舉過程其實就是獲取裝置的各種描述符。

當裝置被主機復位後,裝置會對端點0的相關暫存器進行初始化。初始化完成後,裝置就可以通過端點0進行控制傳輸,也就可以通過控制傳輸來進行傳輸各種描述符資料和設定裝置的通訊位址。

1.2 資料傳輸中斷

對於裝置的資料傳輸中斷,基本上分為兩種:in中斷和out中斷,在out中斷中又可以通過暫存器來判斷是否有setup被置位。其實in中斷就可以對應usb中的in事務,out中斷可以對應out事務,out中斷中如果setup被置位,就是setup事務。在中斷裡,可以直接讀取各個事務中的資料。當有一筆事務到來時,裝置硬體自動識別「令牌包」和自動傳送「狀態包」,所以可以直接在中斷中讀取「資料報」了。具體資料是in、out、setup中的哪乙個,裝置會根據「令牌包」進行識別,來產生in中斷或是out中斷和setup標誌。

GD32 USB除錯 DFU過程問題

1 usb除錯注意事項 最近做乙個專案,用的是gd32f303的mcu,用到了usb資料傳輸的方式,該系列mcu只支援usb的device的模式,不支援otg模式。本人用的是gd32官方提供的庫資訊,因此直接移植了官方的demo。在除錯過程中,除錯了很多天,每次插上usb後,電腦均提示 裝置描述符請...

STM32F3 USB除錯總結

stm32f3 usb除錯總結 經過近1周的學習和除錯,發現usb還是比較好用的,就是有點小麻煩。不過我這學習的目的主要是立馬就用的那種,對於具體的協議什麼的看得都比較淺。配置注意描述報告 全速以上d 腳要有上拉電阻,在列舉完畢後上拉 增加端點後需要新增到初始化和關閉函式裡 中斷傳輸模式直接傳就行,...

GD32F450 200M時USB不穩定

使用gd32f450的demo修改usb驅動,發現120m和168m時正常,200m時很不穩定。懷疑usb時鐘分頻有問題,一查果然是,記錄如下 200m是庫函式主時鐘分頻 如下 static void system clock 200m 25m hxtal void while 0u stab fl...