WCH沁恒单片机
直播中

刘慧

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

ch582 HostU2Enum例程在获取报表描述符时报错是什么原因?


上图是在ch582 HostU2Enum基础上参考CH559EVT修改而来的代码;由于CtrlGetU2HIDDeviceReport有Setideal操作,所以就直接调用了,我们的设备有三个接口
/*********************************************************************
* @fn CtrlGetU2HIDDeviceReport
*
* @brief 获取HID设备报表描述符,返回在TxBuffer中
*
* @param none
*
* @return 错误码
*/
uint8_t CtrlGetU2HIDDeviceReport(uint8_t iNFC)
{
uint8_t s;
uint8_t len;

CopyU2SetupReqPkg((uint8_t *)SetupSetU2HIDIdle);
pU2SetupReq->wIndex = infc;
s = U2HostCtrlTransfer(U2Com_Buffer, &len); // 执行控制传输
if(s != ERR_SUCCESS)
{
return (s);
}

CopyU2SetupReqPkg((uint8_t *)SetupGetU2HIDDevReport);
pU2SetupReq->wIndex = infc;
s = U2HostCtrlTransfer(U2Com_Buffer, &len); // 执行控制传输
if(s != ERR_SUCCESS)
{
return (s);
}

return (ERR_SUCCESS);
}

调用CtrlGetU2HIDDeviceReport获取接口0和接口1的报告描述符正常,但接口2的描述符不正常,如下图

出现0x2E,
#define ERR_USB_TRANSFER       0x20  /* NAK/STALL等更多错误码在0x20~0x2F */
所以想请假如何解决这个问题
另外我们usbhid描述符情况如下附件,是一个三个接口的hid类复合设备
<img  alt="icon_rar.gif">


  
  尝试过用抓包软件抓包看看吗,或者用USB分析仪抓包

回帖(1)

h1654155275.5782

2022-7-25 10:10:40
尝试过用抓包软件抓包看看吗,或者用USB分析仪抓包
举报

更多回帖

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