?下面是PC在睡眠的時候通過USB給鍵盤設(shè)備發(fā)送的包:
我使用583的USB的接口程序嘗試下發(fā)這段DATA 結(jié)果返回了0x20的錯誤碼,使用程序為:
/*********************************************************************
?* @fn? ? ? CtrlGetU2DeviceDescr
?*
?* @brief? ?獲取設(shè)備描述符,返回在 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); // 執(zhí)行控制傳輸
? ? if(s != ERR_SUCCESS)
? ? ? ? return (s);
? ? Usb2DevEndp0Size = ((PUSB_DEV_DESCR)U2Com_Buffer)->bMaxPacketSize0; // 端點0最大包長度,這是簡化處理,正常應(yīng)該先獲取前8字節(jié)后立即更新UsbDevEndp0Size再繼續(xù)
? ? if(len < ((PUSB_SETUP_REQ)SetupGetU2DevDescr)->wLength)
? ? ? ? return (ERR_USB_BUF_OVER); // 描述符長度錯誤
? ? return (ERR_SUCCESS);
}
求助是否調(diào)用正確,PC下發(fā)的睡眠包是否正確