一图顶所有,有需要的直接看图吧。
意外收到了一名网友的打赏,能否留个言。互动一下?
键帽规格
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’三个键
3 comments
没记错的话是CSS,时间久远记不清了。可以扒一下试试嘛!