USB_HID_ERR_DESC_PARSE
embedded
protocol_error
ai_generated
true
USB HID:报告描述符在第12字节处解析失败
USB HID: Report descriptor parsing failed at byte 12
ID: embedded/usb-hid-descriptor-parsing-error
80%修复率
87%置信度
1证据数
2024-03-05首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| USB HID class driver v2.5.0 | active | — | — | — |
| TinyUSB v0.15.0 | active | — | — | — |
根因分析
HID报告描述符包含意外或格式错误的标签,例如短项的大小字段无效。
English
The HID report descriptor contains an unexpected or malformed tag, such as a short item with an invalid size field.
官方文档
https://www.usb.org/document-library/hid-usage-tables-12解决方案
-
Validate the HID report descriptor using a tool like HID Descriptor Tool, then correct the binary: ensure all items have proper lengths (e.g., `0x05 0x01` for Usage Page, not `0x05 0x01 0x00`)
-
Add a fallback descriptor in firmware that skips malformed items: `if (desc_byte == 0xFE) { skip_item(); } else { parse_item(); }`
无效尝试
常见但无效的做法:
-
95% 失败
Buffer size does not affect descriptor parsing; the error is due to invalid content, not insufficient memory.
-
99% 失败
Optimization levels do not change the binary content of the descriptor; parsing logic remains the same.