USB键盘数据解析

本文介绍了USB键盘在嵌入式设备中的工作原理,重点解析了8字节输入报表的数据结构,包括保留字节、键盘状态位以及按键键码。键码参照《HID Usage Tables》标准,列举了常见字母、数字及特殊功能键的定义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以前用过的一个嵌入式设备使用USB键盘作为输入。当时还研究了一下USB协议,现在都快忘得差不多了。这里整理一下当时找到的关于USB键盘数据方面的资料。

主机与USB键盘建立连接后,定时从键盘获取8字节的输入报表。数据含义如下:

Byte Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
0 RightGUI RightAlt RightShift RightControl LeftGUI LeftAlt LeftShift LeftControl
1 Reserved              
2 Keyboard Page Usage              
3 Keyboard Page Usage              
4 Keyboard Page Usage              
5 Keyboard Page Usage              
6 Keyboard Page Usage              
7 Keyboard Page Usage              

Byte1是保留字节,Byte0各位则表示左右GUI(win),alt,shift,control键是否按下,按下为1

剩下6个字节表示此时按下的其他所有键盘按键的键码,从低到高填充,没按就是0x00.如果同时按下的键超过允许,则显示0xff

键码含义可参照《HID Usage Tables》Version 1.11第53页中的Keyboard/Keypad Page。

我把常见的列写出来

#define        KB_ERROR            0x01
#define        KB_A                0x04
#define        KB_B     &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值