使用STM32CubeMX生成HID工程
1. 使用STM32CubeMX生成USB HID工程
这里使用的是STM32F072 Discovery开发板,在MCU型号选中对应的STM32F072RBTx。

接下来配置USB外设,需设置PA11和PA12为USB的DP DM功能,选择USB_Device Class为 Custom Human Interface Device Class(HID) ,最好再打开SWD调试功能,否则无法下载调试。

时钟配置,USB FS Device Clock需要48M,这里可设置STM32F072的USB时钟为内部HSI 48M,并设为主时钟。

最后生成完整的工程,这里生成的为STM32Cube IDE工程,毕竟是ST新推出的开发工具,还是得多使用下。

2. 修改新建的工程
上面新建完成的工程只是一个基本的工程,需稍微修改下,才能变为可以使用的自定义USB HID设备。
修改报告描述表
默认报告描述表为空的,需要修改为自定义设备的报告描述表,找到usbd_custom_hid_if.c中的CUSTOM_HID_ReportDesc_FS,添加描述表如下
// ReportDesc
__ALIGN_BEGIN static uint8_t CUSTOM_HID_ReportDesc_FS[USBD_CUSTOM_HID_REPORT_DESC_SIZE] __ALIGN_END =
{
// /* USER CODE BEGIN 0 */
// 0x00,
// /* USER CODE END 0 */
// 0xC0 /* END_COLLECTION */
0x06,0xFF,0xFF, //UsagePageVendor(0xFF)
0x09,0x01, //Usage(1)
0xA1,0x01, // collection (application)
0x15,0x00, //logical minimum (0)
0x26,0xFF,0x00, //logical maximum (0xFF)
0x75,0x08, //report size(8)
0x95,0x40, //report count(64)
0x09,0x02, //Usage(2)
0x81,0x02, // input (data, variable, absolute)
0x09,0x03, //Usage(3)
0x91

最低0.47元/天 解锁文章
1201

被折叠的 条评论
为什么被折叠?



