标准键盘一次发送8个字节,解释如下:
BYTE1 –
|–bit0: Left Control是否按下,按下为1
|–bit1: Left Shift 是否按下,按下为1
|–bit2: Left Alt 是否按下,按下为1
|–bit3: Left GUI 是否按下,按下为1
|–bit4: Right Control是否按下,按下为1
|–bit5: Right Shift 是否按下,按下为1
|–bit6: Right Alt 是否按下,按下为1
|–bit7: Right GUI 是否按下,按下为1
BYTE2 – 保留位
BYTE3–BYTE8 – 这六个为普通按键
USB鼠标一次可以发送8个字节的数据,其中第1个字节表示修饰键是否被按下,第2个字节是保留位,值固定为0,后6个字节表示普通按键信息。
第1个字节中的每一位都表示一个修饰键,如果该位为1表示对应修饰键被按下,为0表示没有按下。这8个修饰键分别是左Ctrl键、左Shift键、左Alt键、左GUI键、右Ctrl键、右Shift键、右Alt键和右GUI键。
后6个字节表示最多6个普通按键信息,其中的值表示相应的按键编码,范围是0x00到0xFF。0x00表示没有编码且没有按键被按下,0x01表示出现溢出,0x02表示键盘自检失败,0x03表示未定义错误。0x04表示A键,0x05表示B键,以此类推。
当按下一个按键,相应的按键字段会出现一个扫描码;当释放一个按键,相应的按键字段的值会变为0x00。
例如,如果用户先后按下A键、B键和C键,发送的数据包依次为:
00 00 04 00 00 00 00 00
00 00 04 05 00 00 00 00
00 00 04 05 06 00 00 00
如果用户先后按下X键和左Shift键,发送的数据包为:
02 00 1B 00 00 00 00 00文章来源:https://www.toymoban.com/news/detail-788741.html
通过上述例子可以看出,USB键盘按照用户按下按键的顺序返回按键扫描码,如果第一个按键字段为0x00,表示没有任何按键被按下。文章来源地址https://www.toymoban.com/news/detail-788741.html
到了这里,关于USB标准键盘按键数据包格式解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!