1.問題發(fā)生的背景
細(xì)心的用戶可能會(huì)發(fā)現(xiàn),使用到我們最新的 STM32CubeMX 6.9.1 對(duì) STM32H5 的USB 外設(shè)進(jìn)行配置的時(shí)候,只能用 USBX,而以前的 Classic USB 庫不能選擇了。由于 USBx 是基于 Threadx OS 的,客戶更多的希望是裸機(jī)版本的,所以在這兒給大家提供一個(gè)移植的方法。
2.問題的分析
雖然在 STM32CubeMX 6.9.1 上不能使用經(jīng)典的 Classic USB 驅(qū)動(dòng)了,但是實(shí)際上在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.
下載這兩個(gè)鏈接,發(fā)現(xiàn) H5 例程里面僅僅有 Classic USB driver 的 HID 例程,并沒有CDC 的,但這對(duì)于我們想要移植來說,已經(jīng)足夠了。
3.Classic USBD CDC 驅(qū)動(dòng)的移植
4.驗(yàn)證 USBD CDC 通信
簡(jiǎn)單的驗(yàn)證 64 個(gè)字節(jié)之內(nèi)的發(fā)送與接收,修改函數(shù)。
當(dāng)然,這兒僅僅是一個(gè)簡(jiǎn)單的移植,驗(yàn)證 CDC 通信,對(duì)于實(shí)際的項(xiàng)目中的通信邏輯,發(fā)送包長(zhǎng),可以對(duì)照之前的 Classic USBD CDC 例程自行根據(jù)需要添加修改即可!