下面是PC在睡眠的时候通过USB给键盘设备发送的包:
我使用583的USB的接口程序尝试下发这段DATA 结果返回了0x20的错误码,使用程序为:
/*********************************************************************
* @fn CtrlGetU2DeviceDescr
*
* @brief 获取设备描述符,返回在 pHOST_TX_RAM_Addr 中
*
* @param none
*
* @return ERR_USB_BUF_OVER 描述符长度错误
* ERR_SUCCESS 成功
*/
uint8_t CtrlGetU2DeviceDescr(void)
{
uint8_t s;
uint8_t len;
Usb2DevEndp0Size = DEFAULT_ENDP0_SIZE;
CopyU2SetupReqPkg((uint8_t *)SetupGetU2DevDescr);
s = U2HostCtrlTransfer(U2Com_Buffer, &len); // 执行控制传输
if(s != ERR_SUCCESS)
return (s);
Usb2DevEndp0Size = ((PUSB_DEV_DESCR)U2Com_Buffer)->bMaxPacketSize0; // 端点0最大包长度,这是简化处理,正常应该先获取前8字节后立即更新UsbDevEndp0Size再继续
if(len < ((PUSB_SETUP_REQ)SetupGetU2DevDescr)->wLength)
return (ERR_USB_BUF_OVER); // 描述符长度错误
return (ERR_SUCCESS);
}
求助是否调用正确,PC下发的睡眠包是否正确