1.問題發(fā)生的背景
細心的用戶可能會發(fā)現(xiàn),使用到我們最新的 STM32CubeMX 6.9.1 對 STM32H5 的USB 外設進行配置的時候,只能用 USBX,而以前的 Classic USB 庫不能選擇了。由于 USBx 是基于 Threadx OS 的,客戶更多的希望是裸機版本的,所以在這兒給大家提供一個移植的方法。
2.問題的分析
雖然在 STM32CubeMX 6.9.1 上不能使用經(jīng)典的 Classic USB 驅動了,但是實際上在github 上,仍能發(fā)現(xiàn)一些可用的資源供參考:
GitHub - STMicroelectronics/stm32h5-classic-coremw-apps: Provide a set ofapplications for STM32H5xx series based on the STM32 Classic Core Middlewarelibraries
GitHub - STMicroelectronics/stm32u5-classic-coremw-apps: Provide a set ofapplications for STM32U5xx series based on the STM32 Classic Core Middlewarelibraries.
下載這兩個鏈接,發(fā)現(xiàn) H5 例程里面僅僅有 Classic USB driver 的 HID 例程,并沒有CDC 的,但這對于我們想要移植來說,已經(jīng)足夠了。
3.Classic USBD CDC 驅動的移植
4.驗證 USBD CDC 通信
簡單的驗證 64 個字節(jié)之內(nèi)的發(fā)送與接收,修改函數(shù)。
當然,這兒僅僅是一個簡單的移植,驗證 CDC 通信,對于實際的項目中的通信邏輯,發(fā)送包長,可以對照之前的 Classic USBD CDC 例程自行根據(jù)需要添加修改即可!