为什么在键盘的USB报告描述符中最小使用量为224?
我正在尝试制作一个USB键盘,它有非常少的按键,我将使用一些修改键,如SHIFT键和ALT键 现在我的问题是 这是我正在使用的报表描述符的截断部分为什么在键盘的USB报告描述符中最小使用量为224?,usb,hid,Usb,Hid,我正在尝试制作一个USB键盘,它有非常少的按键,我将使用一些修改键,如SHIFT键和ALT键 现在我的问题是 这是我正在使用的报表描述符的截断部分 0x09, 0x06, // USAGE (Keyboard) 0xa1, 0x01, // COLLECTION (Application) 0x05, 0x07, // USAGE_PAGE (Keyboard) 0x19,
0x09, 0x06, // USAGE (Keyboard)
0xa1, 0x01, // COLLECTION (Application)
0x05, 0x07, // USAGE_PAGE (Keyboard)
0x19, 0xe0, // USAGE_MINIMUM (Keyboard LeftControl)
0x29, 0xe7, // USAGE_MAXIMUM (Keyboard Right GUI)
0x15, 0x00, // LOGICAL_MINIMUM (0)
0x25, 0x01, // LOGICAL_MAXIMUM (1)
0x75, 0x01, // REPORT_SIZE (1)
0x95, 0x08, // REPORT_COUNT (8)
本节描述USB消息的修饰符字节(字节0)
据我所知,此字节的位是在按下以下键时设置的
bit 0 - Left Ctrl
bit 1 - Left Shift
bit 2 - Left Alt
bit 3 - Left GUI or Windows Key
bit 4 - Right Ctrl
bit 5 - Right Shift
bit 6 - Right Alt
bit 7 - Right GUI or Windows Key
现在我不明白为什么最小使用量(键盘左控件)和最大使用量(键盘右GUI)限制在这些值上
USB HID规范说
由于每个数组字段中只能报告一个数组元素,
修改器键应报告为位图数据(一组1位
变量字段)。例如,CTRL、SHIFT、ALT和GUI等键
键组成标准键盘报告中的8位修饰符字节。
尽管这些使用代码在使用表中定义为E0–E7,
使用情况不会作为阵列数据发送
最小使用量和最大使用量不限于任何特定值。您可以在描述符中更改它们。在这种情况下,您找到的描述符中的值很有用,因为它们允许您将所有修改器键状态放在一个字节中,这样您就不必向计算机发送更大的报告