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

你好,使用的官方提供的CH554.uvproj,代码是CH554-EVT\EXAM\USB\Device\CompatibilityHID.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个字节,其他都没有返回来。


EVT例程中,默认处理返回长度的变量是UINT8类型,无法正确处理过长的描述符返回。针对修改一下代码。


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