一图顶所有,有需要的直接看图吧。

意外收到了一名网友的打赏,能否留个言。互动一下?

键帽规格




HID设备描述符



按键值







HID Usage ID table 文字速查:

KeyHID UsageHID Usage IDKeyHID UsageHID Usage ID
`(~)0735X071B
1071EC0706
2071FV0719
30720B0705
40721N0711
50722M0710
60723,(<)0736
70724.(>)0737
80725/(?)0738
90726SHIFT_R07E5
00727CTRL_L07E0
-(-)072DALT_L07E2
=(+)072ESPACE072C
BACK SPACE072AALT_R07E6
TAB072BCTRL_R07E4
Q0714NUM0753
W071A(7)075F
E0708(4)075C
R0715(1)0759
T0717(8)0760
Y071C(5)075D
U0718(2)075A
I070C(0)0762
O0712(*)0755
P0713(9)0761
[({}072F(6)075E
]())0730(3)075B
(¦)@10731(DEL)0763
CAPS0739(-)0756
A0704(+)0757
S0716(ENTER)0758
D0707ESC0729
F0709F1073A
G070AF2073B
H070BF3073C
J070DF4073D
K070EF5073E
L070FF6073F
;(:)0733F70740
'(")0734F80741
K420732F90742
ENTER0728F100743
SHIFT_L07E1F110744
K450764F120745
Z071DSCROLL0747
INS0749(/)0754
DEL074CPRINT0746
LEFT0750PAUSE0748
HOME074ABREAK(PAUSE+CTRL)0748
END074D
UP0752WWW Back0C0224
DOWN0751WWW Forward0C0225
PAGE UP074BWWW stop0C0226
PAGE DOWN074EWWW Refresh0C0227
RIGHT074FWWW Search0C0221
WIN_L07E3WWW Favorite0C022A
WIN_R07E7WWW Home0C0223
APP0765Mail0C018A
N-CHG(131)078BMute0C00E2
CHG(132)078AVolume +0C00E9
ROMA(133)0788Volume -0C00EA
K140789Play/Pause0C00CD
K560787Stop0C00B7
K1070785PreTrack0C00B6
KL0791Nexttrack0C00B5
KR0790Media Select0C0183
POWER0181My Computer0C0194
SLEEP0182Calculator0C0192
WAKE UP0183

实例

鼠标发送给PC的数据每次4个字节
BYTE1 BYTE2 BYTE3 BYTE4
定义分别是:
BYTE1 --
|--bit7: 1 表示 Y 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|--bit6: 1 表示 X 坐标的变化量超出-256 ~ 255的范围,0表示没有溢出
|--bit5: Y 坐标变化的符号位,1表示负数,即鼠标向下移动
|--bit4: X 坐标变化的符号位,1表示负数,即鼠标向左移动
|--bit3: 恒为1
|--bit2: 1表示中键按下
|--bit1: 1表示右键按下
|--bit0: 1表示左键按下
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 -- 滚轮变化。
由于手上没有USB鼠标,对BYTE1的4-7位没有测试,对于BYTE2 BYTE3做个测试,BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向

键盘发送给PC的数据每次8个字节
BYTE1 BYTE2 BYTE3 BYTE4 BYTE5 BYTE6 BYTE7 BYTE8
定义分别是:
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 -- 这六个为普通按键
键盘经过测试。
例如:键盘发送一帧数据 02 00 0x04 0x05 00 00 00 00
表示同时按下了Left Shift + ‘a’+‘b’三个键

Last modification:April 21, 2022
如果觉得我的文章对你有用,请帮忙点一下上面的广告