STM32
直播中

HCPcry

8年用户 1149经验值
擅长:处理器/DSP
私信 关注
[问答]

请问STM32F407的USB_HID如何配置?

请问STM32F407的USB_HID如何配置?

回帖(1)

汪佳丽

2021-11-23 10:45:21
STM32F407的USB_HID 基础配置
示例详解: (参考 : https://blog.csdn.net/zhanglifu3601881/article/details/89675307)
工具:STM32CubeMX5.4
单片机:STM32F407VET6
一、硬件电路:





二、STM32CubeMX配置
外部晶振





烧录接口





USB接口





HID模式,参数默认,后面程序里改





时钟树配置





生成代码文件位置,程序编译环境选择
STM32CubeMX5.4用的固件是STM32Cube FM_F4 V1.24.2





仅加入需要库文件
外设文件生成单独文件





配置完成,生成代码,打开





编译下载到单片机,然后通过USB线接入到PC,PC端显示:





三、修改程序
1.加入设备描述符:
0x05, 0x8c, /* USAGE_PAGE (ST Page) /
0x09, 0x01, /
USAGE (Demo Kit) /
0xa1, 0x01, /
COLLECTION (Application) /
/
6 */
// The Input report
0x09,0x03, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00, 0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,CUSTOM_HID_EPIN_SIZE, //0x95,0x16, REPORT_COUNT (20)
0x81,0x02, // INPUT (Data,Var,Abs)
//19
// The Output report
0x09,0x04, // USAGE ID - Vendor defined
0x15,0x00, // LOGICAL_MINIMUM (0)
0x26,0x00,0xFF, // LOGICAL_MAXIMUM (255)
0x75,0x08, // REPORT_SIZE (8)
0x95,CUSTOM_HID_EPOUT_SIZE, //0x95,0x16, REPORT_COUNT (20)
0x91,0x02, // OUTPUT (Data,Var,Abs)
//32





2.修改HID数据字节,其中USBD_CUSTOM_HID_REPORT_DESC_SIZE 33U 是前面描述符的字节数





3.修改发送接收数据长度,改成64字节





四、配置完成
更改完成,编译下载,这时PC端显示OK





源代码已上传我的公开资源
举报

更多回帖

发帖
×
20
完善资料,
赚取积分