天天看點

[單片機][USB_HID] USB問題彙總

  1. 不同系統請求字元串次數(三個根節點)
系統 字元串2 字元串3
windos 8 2
linux 1 3
ios 2 2

單節點隻會請求2次,以上現在屬于正常。

windos枚舉時,每個節點都會重新重新請求字元串2。

  1. USB ERR 0xC0000012

    Bus Hound 6.01 capture on Windows Vista Service Pack 1 (x86). Complements of

    傳回資料過大重新開機

  2. USB ERR “babble”

    compatibility with the USB 1.0)."babble"錯誤. 檢測到裝置傳回了一個無意義的資料

    "babble"錯誤. 一個"babble"錯誤發生當端點接受資料多于端點的特定最大封包大小.已經超過設定的最大發送的封包長度了

  3. USB ERR 0xC0000030

    USBD_STATUS_ENDPOINT_HALTED 0xC0000030 A transfer was submitted to an endpoint that is stalled.

    一個事務傳送到了一個處于STALL(挂起)狀态的端點

錯誤彙總表

錯誤 錯誤值 解釋
USBD_STATUS USBD_STATUS資料類型為USB請求定義了USB狀态值。
USBD_STATUS_CRC 0xC0000001 CRC錯誤(為向後相容USB 1.0而定義)。
USBD_STATUS_BTSTUFF 0xC0000002 BTS錯誤(定義為向後相容USB 1.0)。
USBD_STATUS_DATA_TOGGLE_MISMATCH 0xC0000003 資料切換不比對。
USBD_STATUS_STALL_PID 0xC0000004 裝置傳回一個stall包辨別符(定義為向後相容USB 1.0)
USBD_STATUS_DEV_NOT_RESPONDING 0xC0000005 裝置沒有響應(為向後相容USB 1.0而定義)。
USBD_STATUS_PID_CHECK_FAILURE 0xC0000006 裝置傳回一個資料包辨別符檢查失敗(定義為向後相容USB 1.0)。
USBD_STATUS_UNEXPECTED_PID 0xC0000007 裝置傳回了一個意外的包辨別符錯誤(定義為向後相容USB 1.0)。
USBD_STATUS_DATA_OVERRUN 0xC0000008 裝置傳回一個資料溢出錯誤(為向後相容USB 1.0而定義)。
USBD_STATUS_DATA_UNDERRUN 0xC0000009 裝置傳回了一個資料運作不足錯誤(為向後相容USB 1.0而定義)。
USBD_STATUS_RESERVED1 0xC000000A 保留
USBD_STATUS_RESERVED2 0xC000000B 保留
USBD_STATUS_BUFFER_OVERRUN 0xC000000C 裝置傳回一個緩沖區溢出錯誤(為向後相容USB 1.0而定義)。
USBD_STATUS_BUFFER_UNDERRUN 0xC000000D 裝置傳回緩沖區運作不足錯誤(為向後相容USB 1.0而定義)。
USBD_STATUS_NOT_ACCESSED 0xC000000F USB堆棧不能通路裝置(定義為向後相容USB 1.0)。
USBD_STATUS_FIFO 0xC0000010 裝置傳回一個FIFO錯誤(定義為向後相容USB 1.0)。
USBD_STATUS_XACT_ERROR 0xC0000011 裝置傳回了一個事務錯誤(定義為向後相容USB 1.0)。
USBD_STATUS_BABBLE_DETECTED 0xC0000012 裝置傳回一個babble檢測到的錯誤(定義為向後相容USB 1.0)。
USBD_STATUS_DATA_BUFFER_ERROR 0xC0000013 硬體狀态碼範圍從0x00000001到0x000000FF(為向後相容USB 1.0堆棧而定義)。
USBD_STATUS_NO_PING_RESPONSE 0xC0000014 主機發送的ping包在裝置上沒有收到響應。
USBD_STATUS_INVALID_STREAM_TYPE 0xC0000015 流類型對端點無效。
USBD_STATUS_INVALID_STREAM_ID 0xC0000016 流辨別符無效。
USBD_STATUS_ENDPOINT_HALTED 0xC0000030 一個傳輸被送出到一個停止的端點。
USBD_STATUS_INVALID_URB_FUNCTION 0x80000200 無效的URB功能
USBD_STATUS_INVALID_PARAMETER 0x80000300 Invalid parameter.
USBD_STATUS_ERROR_BUSY 0x80000400 用戶端驅動程式試圖關閉終端、接口或配置句柄,導緻了一個錯誤。
USBD_STATUS_REQUEST_FAILED 0x80000500 集線器驅動程式無法完成URB請求。
USBD_STATUS_INVALID_PIPE_HANDLE 0x80000600 無效的pipe處理
USBD_STATUS_NO_BANDWIDTH 0x80000700 沒有足夠的帶寬打開所請求的端點。
USBD_STATUS_INTERNAL_HC_ERROR 0x80000900 未指定主機控制器錯誤。
USBD_STATUS_ERROR_SHORT_TRANSFER 0x80000900 傳輸以一個短包結束,但是USBD_SHORT_TRANSFER_OK位沒有為管道設定。
USBD_STATUS_BAD_START_FRAME 0xC0000A00 請求的開始幀不在目前USB幀的USBD_ISO_START_FRAME_RANGE幀範圍内。 每當這個錯誤發生時,系統設定管道上的失速位。
USBD_STATUS_ISOCH_REQUEST_FAILED 0xC0000B00 當同步傳輸中的所有資料包都完成錯誤時,主要制器将傳回此錯誤。
USBD_STATUS_FRAME_CONTROL_OWNED 0xC0000C00 當主要制器的幀長度控制被非主要制器驅動程式使用時,集線器驅動程式傳回此錯誤。
USBD_STATUS_FRAME_CONTROL_NOT_OWNED 0xC0000D00 如果調用者不擁有幀長度控制,并試圖釋放或修改主要制器幀長度,集線器驅動程式将傳回此錯誤。
USBD_STATUS_NOT_SUPPORTED 0xC0000E00 請求不被支援。
USBD_STATUS_INAVLID_CONFIGURATION_DESCRIPTOR 0xC0000F00 無效的配置描述符。
USBD_STATUS_INSUFFICIENT_RESOURCES 0xC0001000 資源不足。
USBD_STATUS_SET_CONFIG_FAILED 0xC0002000 更改裝置配置失敗。
USBD_STATUS_BUFFER_TOO_SMALL 0xC0003000 緩沖區太小。
USBD_STATUS_INTERFACE_NOT_FOUND 0xC0004000 日志含義沒有找到接口。
USBD_STATUS_INAVLID_PIPE_FLAGS 0xC0005000 無效通道标志
USBD_STATUS_TIMEOUT 0xC0006000 請求逾時
USBD_STATUS_DEVICE_GONE 0xC0007000 該裝置不再存在于系統中。
USBD_STATUS_STATUS_NOT_MAPPED 0xC0008000 裝置總線位址沒有映射到系統記憶體。
USBD_STATUS_HUB_INTERNAL_ERROR 0xC0009000 hub驅動程式在攔截針對其他裝置的URB時傳回此錯誤。
USBD_STATUS_CANCELED 0xC0010000 USB堆棧在它完成一個傳輸時報告這個錯誤,因為一個來自用戶端驅動程式的AbortPipe請求。
USBD_STATUS_ISO_NOT_ACCESSED_BY_HW 0xC0020000 主要制器沒有通路與此包關聯的傳輸描述符(TD)。 USB堆棧在一個同步傳輸資料包的資料包狀态字段中報告這個錯誤。
USBD_STATUS_ISO_TD_ERROR 0xC0030000 主要制器報告了傳輸描述符(TD)中的錯誤。 USB堆棧在一個同步傳輸資料包的資料包狀态字段中報告這個錯誤。
USBD_STATUS_ISO_NA_LATE_USBPORT 0xC0040000 日志含義用戶端驅動按時送出封包,但封包未能按時到達微端口驅動。 USB堆棧在一個同步傳輸資料包的資料包狀态字段中報告這個錯誤。
USBD_STATUS_ISO_NOT_ACCESSED_LATE 0xC0050000 用戶端驅動程式沒有按時送出資料包。處理步驟 USB堆棧在一個同步傳輸資料包的資料包狀态字段中報告這個錯誤。
USBD_STATUS_BAD_DESCRIPTOR 0xC0100000 無效的描述符。
USBD_STATUS_BAD_DESCRIPTOR_BLEN 0xC0100001 無效的描述符的長度。
USBD_STATUS_BAD_DESCRIPTOR_TYPE 0xC0100002 無效的描述符的類型。
USBD_STATUS_BAD_INTERFACE_DESCRIPTOR 0xC0100003 無效的接口描述符。
USBD_STATUS_BAD_ENDPOINT_DESCRIPTOR 0xC0100004 無效的端點描述符。
USBD_STATUS_BAD_INTERFACE_ASSOC_DESCRIPTOR 0xC0100005 無效的接口關聯描述符。
USBD_STATUS_BAD_CONFIG_DESC_LENGTH 0xC0100006 無效的配置描述符長度。
USBD_STATUS_BAD_NUMBER_OF_INTERFACES 0xC0100007 接口數無效。
USBD_STATUS_BAD_NUMBER_OF_ENDPOINTS 0xC0100008 端點數無效。
USBD_STATUS_BAD_ENDPOINT_ADDRESS

繼續閱讀