CH32V307系列MCU,USBHS的CompatibilityHID如何添加reportID?

请问CH32V307系列MCU,USBHS的CompatibilityHID如何添加reportID?

现象描述:

1、添加了report id 为0x85,0x02,并且修改了DEF_USBD_REPORT_DESC_LEN_CUSTOM宏定义为36字节,也修改了MyCfgDescr中HID中wDescriptorLength部分为36字节后,无法发送通过设置端点发送数据。

2、wireshark抓包显示“URB_FUNCTION_ABORT_PIPE”和“URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL”。

3、将report id的两个字节注释,并且修改DEF_USBD_REPORT_DESC_LEN_CUSTOM以及MyCfgDescr中HID中wDescriptorLength部分为34字节,又可以正常发送数据了

您好,关于你的问题,请问一下描述中提到添加reportID是指修改报表描述符还是哪部分描述符,关于描述中提到的几个宏,这边在EVT 对应例程中并没有搜索到,可以具体说一下参考的是EVT哪一个例程,若方便可将例程具体发我看一下,可以邮箱(lzs@wch.cn)和我具体沟通一下。



我参考的是USB HS中的CompatibilityHID这个例程,宏定义是修改了DEF_USBD_REPORT_DESC_LEN_CUSTOM,在usbd_desc.h里,我给您邮箱也发送了一份,能说一下如果需要修改report id,是怎么一个流程吗?默认是不添加report id,所以默认发送的report id是0,但是项目需要修改为非0的report id,麻烦了


您好,邮件回复过你。若需要在报表描述中加入Report ID,建议你可以先确认一下你要模拟设备端点上下传数据包的大小,然后修改报表描述符中的Report Size以及Report Count大小。目前例程Report Size以及Report Count大小都是根据端点最大数据包512字节计算的,若要加入Report ID,这些数据应该都需要进行修改。建议你可以抓包看一下你要模拟设备的描述符,根据其描述符进行修改。后续问题沟通可继续通过邮箱进行沟通。


只有登录才能回复,可以选择微信账号登录