- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个 HID USB 设备。我搜索了一下,发现键盘的输出有 8 个字节。第一个字节是修饰符,第二个字节是保留字节,其余 6 个字节是关键代码。我认为在某些情况下,例如“prtsc”,需要的不仅仅是单个字节。我想知道
1.usb hid键盘输出的数据是否一直是8字节(会不会因按键类型不同而不同)
2.这8个字节是否有其他前缀或后缀数据来标识新按键的开始和结束?
问候,拉胡尔。
最佳答案
I think in some cases like "prtsc" more than single byte is needed.Iwould like to know
不,当前定义的键盘用法集范围从 0x04 到 0xE7,因此它们都可以由单个字节索引。
1.Is the data output from the usb hid keyboard is always 8 bytes or not (will it vary depends on the types of key pressed).
它是一个固定长度,但并不总是必须是 8 个字节(除非您的设备在启动 PC 时需要被识别为键盘......CMOS 启动固件不处理 HID 报告描述符,因此报告缓冲区是预定的固定8字节)。最小值(我已经测试过)是 HID 报告描述符定义的 3 个字节(1 个修饰符字节、1 个保留字节和 1 个 key 索引字节)。
2.Is there any other prefix or suffix data along with these 8 bytes to identify the start and end of new key press?
没有。 6 个字节(在前两个字节之后)表示同时按下的键(在这种情况下最多 6 个)。如果当前未按下任何键,则所有 6 个字节都应包含 0x00。每个字节都是 LOGICAL_MINIMUM 和 LOGICAL_MAXIMUM 之间的索引,一对一地映射到(通常)由 USAGE_MINIMUM 和 USAGE_MAXIMUM 定义的键盘使用范围,或单个 USAGE 的列表,或两者的组合。例如,如果按下 A 和 B 键,则缓冲区将包含这两种用法的索引(以任何顺序),其余字节应为 0x00。如果 A 随后被释放,则缓冲区仍应包含 B 使用的索引(其余字节设置为 0x00)。如果您忘记通过将缓冲区清除为零来发出 key 释放信号,那么您很可能会看到在主机设备(通常是 PC)上重复上次更改的 key 。关键重复延迟和速率纯粹是主机功能。
Device Class Definition for HID 1.11在附录 C 中有更多信息。
关于usb - 隐藏式 USB 键盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24055687/
我是一名优秀的程序员,十分优秀!