我正在尝试对自己进行一些关于在 C 中为我想尝试的 PIC32 USB 项目创建 USB HID 描述符的教育。
我已经从http://www.usb.org/developers/hidpage/下载了 HID 使用表文档,并试图找出 HID 描述符中不同元素的实际值在哪里表示。
让我用我正在查看的示例的摘录来解释:
ROM struct{BYTE report[HID_RPT01_SIZE];}hid_rpt01={{
0x05,0x01, // USAGE_PAGE (Generic Desktop)
0x09,0x05, // USAGE (Game Pad)
0xA1,0x01, // COLLECTION (Application)
0x15,0x00, // LOGICAL_MINIMUM(0)
0x25,0x01, // LOGICAL_MAXIMUM(1)
0x35,0x00, // PHYSICAL_MINIMUM(0)
0x45,0x01, // PHYSICAL_MAXIMUM(1)
// ...
从上面的例子中,很明显 BYTE 数组是由键/值对组成的,如果我可以这么称呼它的话。例如第2行:0x05,0x01表示键0x05,即Usage Page,0x01表示Generic Desktop的值
我试图找出这些值在 HID 使用表 PDF 文档中的位置。例如,我找不到任何参考
USAGE_PAGE == 0x05
例如
COLLECTION == 0xA1
我尝试在 PDF 中搜索 0xA1,没有结果。我能够找出这些值的唯一方法是查看示例的注释,或者使用上面链接中的USB 描述符工具。
我只是想知道,我是否完全因为缺少这个键/值参考文档而感到愚蠢?
网上有很多例子,比如下面的链接:http ://www.frank-zhao.com/cache/hid_tutorial_1.php
但即使这引用了大量的字符串值,如END_COLLECTION == 0xc0
我在哪里可以找到这些值的参考?我错过了什么?