上圖是在ch582?HostU2Enum基礎(chǔ)上參考CH559EVT修改而來的代碼;由于CtrlGetU2HIDDeviceReport有SetIdeal操作,所以就直接調(diào)用了,我們的設(shè)備有三個(gè)接口
/********************************************************************* ?*?@fn??????CtrlGetU2HIDDeviceReport ?* ?*?@brief???獲取HID設(shè)備報(bào)表描述符,返回在TxBuffer中 ?* ?*?@param???none ?* ?*?@return??錯(cuò)誤碼 ?*/ uint8_t?CtrlGetU2HIDDeviceReport(uint8_t?infc) { ????uint8_t?s; ????uint8_t?len; ????CopyU2SetupReqPkg((uint8_t?*)SetupSetU2HIDIdle); ????pU2SetupReq->wIndex?=?infc; ????s?=?U2HostCtrlTransfer(U2Com_Buffer,?&len);?//?執(zhí)行控制傳輸 ????if(s?!=?ERR_SUCCESS) ????{ ????????return?(s); ????} ????CopyU2SetupReqPkg((uint8_t?*)SetupGetU2HIDDevReport); ????pU2SetupReq->wIndex?=?infc; ????s?=?U2HostCtrlTransfer(U2Com_Buffer,?&len);?//?執(zhí)行控制傳輸 ????if(s?!=?ERR_SUCCESS) ????{ ????????return?(s); ????} ????return?(ERR_SUCCESS); }
調(diào)用CtrlGetU2HIDDeviceReport獲取接口0和接口1的報(bào)告描述符正常,但接口2的描述符不正常,如下圖
出現(xiàn)0x2E,
#define ERR_USB_TRANSFER? ? ? ?0x20? /* NAK/STALL等更多錯(cuò)誤碼在0x20~0x2F */
所以想請(qǐng)假如何解決這個(gè)問題
另外我們usbhid描述符情況如下附件,是一個(gè)三個(gè)接口的hid類復(fù)合設(shè)備