遇到的问题和如下帖子的一模一样,怀疑是cube的BUG,在F1系列的cube生成代码就没有这个问题。 https://www.stmcu.org.cn/module/forum/thread-609827-1-1.html 移植的stm32 hid设备只能在while(1)中发送数据给PC后,PC的上位机bushound才能发送数据给下位机。 如果hid设备不发数据给PC,则bushound发送数据时会报错“invalid command”, bushound看不到数据发下去。 请问这个是什么原因导致的?哪位大神解决了找我要现金红包,多谢!我的QQ175966115 |
自定义USB HID
这是通过STM32CubeMX 生成的自定义USB HID设备,设备描述符都有注释,数据收发为8字节,一帧为9字节,第一字节为ID,后面8字节为数据。ID在描述符中没有指定,所有固定为00.
注意:
1、STM32CubeMX配置使用HSE但是生成的代码里面还是会配置HSI,这样导致程序死掉(不知道官方意图)
2、STM32CubeMX生成的HID设备里面的CUSTOM_HID_OutEvent_FS 函数的参数是两个uint8_t,即只能处理一个字节的数据(ID不算),所有需要改为uint8_t * ,同样函数类型及调用也要改。
3、生成的代码里面一次接收多少字节的数据是由宏 USBD_CUSTOMHID_OUTREPORT_BUF_SIZE 指定,可根据自己需要修改
评分
查看全部评分