首页 > 其他分享 >[单片机][USB_HID] USB问题汇总

[单片机][USB_HID] USB问题汇总

时间:2022-10-31 18:06:37浏览次数:63  
标签:STATUS 1.0 USB 错误 兼容 单片机 USBD HID


  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

0xC0100009

无效的端点地址。


标签:STATUS,1.0,USB,错误,兼容,单片机,USBD,HID
From: https://blog.51cto.com/xuejianqiang/5810716

相关文章