请教各位大佬,我最近使用F405芯片,用stm32CubeMX默认创建了一个USBHID的例程,这个例程默认就是一个HID模拟鼠标移动的程序,我创建之后也是可以正常枚举并且鼠标正常移动的,说明生成的工程是没有问题的,然后我把报告描述符修改成了一个多点触摸的描述符,这个描述符是以前项目使用的,是没有问题的。变量也没有改变,只是把报告描述符的内容替换了,如下图:
这个报告描述符字节比较大,又474个字节,然后我又把相应的配置描述符修改了,如下图所示: 把配置描述符集合里HID描述符中描述报告描述符大小的字节改成我们修改后的大小,如下图
按道理,将这些修改之后,就相当于重新约定了HID上报数据的协议,随后,我又按照新规定的报告描述符的协议模拟上报触控点的数据。 通过Bus hound显示枚举是成功的,也一直在按照报告描述符规定的协议向主机发送数据,但是没有模拟触控的现象,我使用以前的工程是有明显 的触控屏幕的现象的。通过设备管理器查看设备是正常运行的,然后用Bus hound观察枚举过程,发现一直在上报数据,但是在枚举过程中在主机 发送GET_REPORT之后出现了USTS c0000004 stall pid 错误,出现之后枚举也没有停止,而是正常运行的,数据也是正常上报的, 但就是没有现象,我感觉是主机没有接收到报告描述符,或者接收错误了,导致虽然数据是正常上报的,但是系统不知道上报的数据的含义, 有没有大佬懂得这方面的错误,还请指导一下,工程其他地方都没有动,就是修改了配置、报告描述符等信息。
|
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
STM32的USB自学笔记
用STM32CubeMX配置USB CDC方式通讯(含USB host与USB device工程)
【实战经验】进行USB CDC类开发时,无法发送64整数倍数据(续)
【实战经验】USB CDC类入门培训
USB4 产品设计将会令 USB4 取得成功
最全USB HID开发资料,悉心整理一个月,亲自测试
【银杏科技ARM+FPGA双核心应用】STM32H7系列30——USB_VCP
游名科技:DCDC隔离电源隔离USB隔离CAN隔离485原理图PCB图等...
微信公众号
手机版