1.设计目的
目前 USBx Device standalone 的官方示例较少,不过使用 STM32CubeMX 可以快速地生成USBx Device 相关类的示例工程,会很方便大家的开发。这里以 NUCLEO-H563 为例,实现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.添加应用代码
注意:这个 LAT 是基于 STM32Cube_FW_H5_V1.X.X 中的“STM32Cube_FW_H5_V1.x.xProjectsNUCLEO-H563ZIApplicationsUSBXUx_Device_HID_Standalone ”例程,所以本 LAT 中提到的函数或者变量都可以直接使用或者参考例程中的函数或者变量。
2.2.1 完善串口打印
可以参考《STM32 USBx HOST HID standalone 示例移植》中的说明完善串口打印信息。由于是 USB Device,也可以通过 USB 协议分析仪去查看 log 调试(可选)。
2.2.2 添加 USBx 的处理函数
在 main 函数的 while 循环中添加函数 USBX_Device_Process(NULL);添加该函数USBX_Device_Process 的定义和申明在 app_usbx_device.c 文件中实现。
2.2.3 HID 按键功能的实现
打开函数 USBX_DEVICE_HID_MOUSE_Task 并实现它,还有按键的 callback 回调函数的实现,复制粘贴例程程序的代码即可。添加相关变量的申明,解决相应的编译错误之后,即可通过按键 User Button 模拟鼠标的功