WCH沁恒单片机
直播中

陈燕

7年用户 1060经验值
私信 关注
[问答]

CH552 USB报告描述符是499个字节,只能获得前面52个字节是什么原因?

你好,使用的官方提供的CH554.uvproj,代码是CH554-EVTEXAMUSBDeviceCompatibilityHID.c,只修改了设备描述符,配置描述符,报告描述符,其他没有动。
UINT8C CfgDesc[41] =
{
    0x09,0x02,0x29,0x00,0x01,0x01,0x00,0x80,0x64,      
    0x09,0x04,0x00,0x00,0x02,0x03,0x00,0x00,0x00,  
    //以下为HID描述符 HID Keyboard, 2 endpoints
    0x09,0x21,0x11,0x01,0x00,0x01,0x22,0xF3,0x01,
    0x07,0x05,0x82,0x03,ENDP2_IN_SIZE,0x00,0x05,
    0x07,0x05,0x02,0x03,ENDP2_OUT_SIZE,0x00,0x05,
};
报告描述符的长度设置为0xF3,0x01,在URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE中返回的长度是
0x233,多了64个字节,对比了改动代码之前的情况也是正确的。


可问题是返回的报告描述符只有前面的52个字节,其他都没有返回来。

回帖(1)

李丹丹

2022-9-27 09:47:45
EVT例程中,默认处理返回长度的变量是UINT8类型,无法正确处理过长的描述符返回。针对修改一下代码。
举报

更多回帖

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