一图顶所有,有需要的直接看图吧。
意外收到了一名网友的打赏,能否留个言。互动一下?
键帽规格HID设备描述符按键值HID Usage ID table 文字速查:Key
HID Usage
HID Usage ID
Key
HID Usage
HID Usage ID
`(~)
07
35
X
07
1B
1
07
1E
C
07
06
2
07
1F
V
07
19
3
07
20
B
07
05
4
07
21
N
07
11
5
07
22
M
07
10
6
07
23
,(<)
07
36
7
07
24
.(>)
07
37
8
07
25
/(?)
07
38
9
07
26
SHIFT_R
07
E5
0
07
27
CTRL_L
07
E0
-(-)
07
2D
ALT_L
07
E2
=(+)
07
2E
SPACE
07
2C
BACK SPACE
07
2A
ALT_R
07
E6
TAB
07
2B
CTRL_R
07
E4
Q
07
14
NUM
07
53
W
07
1A
(7)
07
5F
E
07
08
(4)
07
5C
R
07
15
(1)
07
59
T
07
17
(8)
07
60
Y
07
1C
(5)
07
5D
U
07
18
(2)
07
5A
I
07
0C
(0)
07
62
O
07
12
(*)
07
55
P
07
13
(9)
07
61
[({}
07
2F
(6)
07
5E
]())
07
30
(3)
07
5B
(¦)@1
07
31
(DEL)
07
63
CAPS
07
39
(-)
07
56
A
07
04
(+)
07
57
S
07
16
(ENTER)
07
58
D
07
07
ESC
07
29
F
07
09
F1
07
3A
G
07
0A
F2
07
3B
H
07
0B
F3
07
3C
J
07
0D
F4
07
3D
K
07
0E
F5
07
3E
L
07
0F
F6
07
3F
;(:)
07
33
F7
07
40
'(")
07
34
F8
07
41
K42
07
32
F9
07
42
ENTER
07
28
F10
07
43
SHIFT_L
07
E1
F11
07
44
K45
07
64
F12
07
45
Z
07
1D
SCROLL
07
47
INS
07
49
(/)
07
54
DEL
07
4C
07
46
LEFT
07
50
PAUSE
07
48
HOME
07
4A
BREAK(PAUSE+CTRL)
07
48
END
07
4D
UP
07
52
WWW Back
0C
0224
DOWN
07
51
WWW Forward
0C
0225
PAGE UP
07
4B
WWW stop
0C
0226
PAGE DOWN
07
4E
WWW Refresh
0C
0227
RIGHT
07
4F
WWW Search
0C
0221
WIN_L
07
E3
WWW Favorite
0C
022A
WIN_R
07
E7
WWW Home
0C
0223
APP
07
65
0C
018A
N-CHG(131)
07
8B
Mute
0C
00E2
CHG(132)
07
8A
Volume +
0C
00E9
ROMA(133)
07
88
Volume -
0C
00EA
K14
07
89
Play/Pause
0C
00CD
K56
07
87
Stop
0C
00B7
K107
07
85
PreTrack
0C
00B6
KL
07
91
Nexttrack
0C
00B5
KR
07
90
Media Select
0C
0183
POWER
01
81
My Computer
0C
0194
SLEEP
01
82
Calculator
0C
0192
WAKE UP
01
83
实例鼠标发送给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’三个键