1.設(shè)計目的
目前 USBx Device standalone 的官方示例較少,不過使用 STM32CubeMX 可以快速地生成USBx Device 相關(guān)類的示例工程,會很方便大家的開發(fā)。這里以 NUCLEO-H563 為例,實現(xiàn)USBx Device HID Standalone 類,大家可以以此為參考移植到其他的 USBx Device 類。
2.示例移植
參考官方示例代碼:……STM32Cube_FW_H5_V1.3.0ProjectsNUCLEOH563ZIApplicationsUSBXUx_Device_HID_Standalone
2.1.生成 STM32CubeMX 工程
新建 STM32CubeMX 工程 :STM32H563ZIT6U,選擇“without TrustZone activated”.另外,STM32CubeMX 中未作說明的配置保持默認。
2.2.添加應(yīng)用代碼
注意:這個 LAT 是基于 STM32Cube_FW_H5_V1.X.X 中的“STM32Cube_FW_H5_V1.x.xProjectsNUCLEO-H563ZIApplicationsUSBXUx_Device_HID_Standalone ”例程,所以本 LAT 中提到的函數(shù)或者變量都可以直接使用或者參考例程中的函數(shù)或者變量。
2.2.1 完善串口打印
可以參考《STM32 USBx HOST HID standalone 示例移植》中的說明完善串口打印信息。由于是 USB Device,也可以通過 USB 協(xié)議分析儀去查看 log 調(diào)試(可選)。
2.2.2 添加 USBx 的處理函數(shù)
在 main 函數(shù)的 while 循環(huán)中添加函數(shù) USBX_Device_Process(NULL);添加該函數(shù)USBX_Device_Process 的定義和申明在 app_usbx_device.c 文件中實現(xiàn)。
2.2.3 HID 按鍵功能的實現(xiàn)
打開函數(shù) USBX_DEVICE_HID_MOUSE_Task 并實現(xiàn)它,還有按鍵的 callback 回調(diào)函數(shù)的實現(xiàn),復(fù)制粘貼例程程序的代碼即可。添加相關(guān)變量的申明,解決相應(yīng)的編譯錯誤之后,即可通過按鍵 User Button 模擬鼠標的功
能。當每按一下 User Button(MCU 的 PC13 引腳),在 PC 端即可看到鼠標移動一下,符合預(yù)期。