USB鼠标键盘数据格式以及按键键值

网上相关的资料很多 ,有点分散,我没事就边学习边整理了下,供大家参考``:
原文来自https://blog.csdn.net/u013771867/article/details/51465193
鼠标发送给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’三个键
原文来自https://blog.csdn.net/u013771867/article/details/51465193

第一列10进制键值,第二列16进制键值,第四列是按键
00 Reserved (no event indicated)9 N/A √ √ √ 4/101/104
01 Keyboard ErrorRollOver9 N/A √ √ √ 4/101/104
02 Keyboard POSTFail9 N/A √ √ √ 4/101/104
03 Keyboard ErrorUndefined9 N/A √ √ √ 4/101/104
04 Keyboard a and A4 31 √ √ √ 4/101/104
05 Keyboard b and B 50 √ √ √ 4/101/104
06 Keyboard c and C4 48 √ √ √ 4/101/104
07 Keyboard d and D 33 √ √ √ 4/101/104
08 Keyboard e and E 19 √ √ √ 4/101/104
09 Keyboard f and F 34 √ √ √ 4/101/104
0A Keyboard g and G 35 √ √ √ 4/101/104
0B Keyboard h and H 36 √ √ √ 4/101/104
0C Keyboard i and I 24 √ √ √ 4/101/104
0D Keyboard j and J 37 √ √ √ 4/101/104
0E Keyboard k and K 38 √ √ √ 4/101/104
0F Keyboard l and L 39 √ √ √ 4/101/104
10 Keyboard m and M4 52 √ √ √ 4/101/104
11 Keyboard n and N 51 √ √ √ 4/101/104
12 Keyboard o and O4 25 √ √ √ 4/101/104
13 Keyboard p and P4 26 √ √ √ 4/101/104
14 Keyboard q and Q4 17 √ √ √ 4/101/104
15 Keyboard r and R 20 √ √ √ 4/101/104
16 Keyboard s and S4 32 √ √ √ 4/101/104
17 Keyboard t and T 21 √ √ √ 4/101/104
18 Keyboard u and U 23 √ √ √ 4/101/104
19 Keyboard v and V 49 √ √ √ 4/101/104
1A Keyboard w and W4 18 √ √ √ 4/101/104
1B Keyboard x and X4 47 √ √ √ 4/101/104
1C Keyboard y and Y4 22 √ √ √ 4/101/104
1D Keyboard z and Z4 46 √ √ √ 4/101/104
1E Keyboard 1 and !4 2 √ √ √ 4/101/104
1F Keyboard 2 and @4 3 √ √ √ 4/101/104
20 Keyboard 3 and #4 4 √ √ √ 4/101/104
21 Keyboard 4 and $4 5 √ √ √ 4/101/104
22 Keyboard 5 and %4 6 √ √ √ 4/101/104
23 Keyboard 6 and ^4 7 √ √ √ 4/101/104
24 Keyboard 7 and &4 8 √ √ √ 4/101/104
25 Keyboard 8 and *4 9 √ √ √ 4/101/104
26 Keyboard 9 and (4 10 √ √ √ 4/101/104
27 Keyboard 0 and )4 11 √ √ √ 4/101/104
28 Keyboard Return (ENTER)5 43 √ √ √ 4/101/104
29 Keyboard ESCAPE 110 √ √ √ 4/101/104
2A Keyboard DELETE (Backspace)13 15 √ √ √ 4/101/104
2B Keyboard Tab 16 √ √ √ 4/101/104
2C Keyboard Spacebar 61 √ √ √ 4/101/104
2D Keyboard - and (underscore)4 12 √ √ √ 4/101/104
2E Keyboard = and +4 13 √ √ √ 4/101/104
2F Keyboard [ and {4 27 √ √ √ 4/101/104
30 Keyboard ] and }4 28 √ √ √ 4/101/104
31 Keyboard \ and | 29 √ √ √ 4/101/104
32 Keyboard Non-US # and ~2 42 √ √ √ 4/101/104
33 Keyboard ; and :4 40 √ √ √ 4/101/104
34 Keyboard ‘ and “4 41 √ √ √ 4/101/104
35 Keyboard Grave Accent and Tilde4 1 √ √ √ 4/101/104
36 Keyboard, and <4 53 √ √ √ 4/101/104
37 Keyboard . and >4 54 √ √ √ 4/101/104
38 Keyboard / and ?4 55 √ √ √ 4/101/104
39 Keyboard Caps Lock11 30 √ √ √ 4/101/104
3A Keyboard F1 112 √ √ √ 4/101/104
3B Keyboard F2 113 √ √ √ 4/101/104
3C Keyboard F3 114 √ √ √ 4/101/104
3D Keyboard F4 115 √ √ √ 4/101/104
3E Keyboard F5 116 √ √ √ 4/101/104
3F Keyboard F6 117 √ √ √ 4/101/104
40 Keyboard F7 118 √ √ √ 4/101/104
41 Keyboard F8 119 √ √ √ 4/101/104
42 Keyboard F9 120 √ √ √ 4/101/104
43 Keyboard F10 121 √ √ √ 4/101/104
44 Keyboard F11 122 √ √ √ 101/104
45 Keyboard F12 123 √ √ √ 101/104
46 Keyboard PrintScreen1 124 √ √ √ 101/104
47 Keyboard Scroll Lock11 125 √ √ √ 4/101/104
48 Keyboard Pause1 126 √ √ √ 101/104
49 Keyboard Insert1 75 √ √ √ 101/104
4A Keyboard Home1 80 √ √ √ 101/104
4B Keyboard PageUp1 85 √ √ √ 101/104
4C Keyboard Delete Forward1;14 76 √ √ √ 101/104
4D Keyboard End1 81 √ √ √ 101/104
4E Keyboard PageDown1 86 √ √ √ 101/104
4F Keyboard RightArrow1 89 √ √ √ 101/104
50 Keyboard LeftArrow1 79 √ √ √ 101/104
51 Keyboard DownArrow1 84 √ √ √ 101/104
52 Keyboard UpArrow1 83 √ √ √ 101/104
53 Keypad Num Lock and Clear11 90 √ √ √ 101/104
54 Keypad /1 95 √ √ √ 101/104
55 Keypad * 100 √ √ √ 4/101/104
56 Keypad - 105 √ √ √ 4/101/104
57 Keypad + 106 √ √ √ 4/101/104
58 Keypad ENTER5 108 √ √ √ 101/104
59 Keypad 1 and End 93 √ √ √ 4/101/104
5A Keypad 2 and Down Arrow 98 √ √ √ 4/101/104
5B Keypad 3 and PageDn 103 √ √ √ 4/101/104
5C Keypad 4 and Left Arrow 92 √ √ √ 4/101/104
5D Keypad 5 97 √ √ √ 4/101/104
5E Keypad 6 and Right Arrow 102 √ √ √ 4/101/104
5F Keypad 7 and Home 91 √ √ √ 4/101/104
60 Keypad 8 and Up Arrow 96 √ √ √ 4/101/104
61 Keypad 9 and PageUp 101 √ √ √ 4/101/104
62 Keypad 0 and Insert 99 √ √ √ 4/101/104
63 Keypad . and Delete 104 √ √ √ 4/101/104
64 Keyboard Non-US \ and |3;6 45 √ √ √ 4/101/104
65 Keyboard Application10 129 √ √ 104
66 Keyboard Power9 √ √
67 Keypad = √
68 Keyboard F13 √
69 Keyboard F14 √
6A Keyboard F15 √
6B Keyboard F16
6C Keyboard F17
6D Keyboard F18
6E Keyboard F19
6F Keyboard F20
70 Keyboard F21
71 Keyboard F22
72 Keyboard F23
73 Keyboard F24
74 Keyboard Execute √
75 Keyboard Help √
76 Keyboard Menu √
77 Keyboard Select √
78 Keyboard Stop √
79 Keyboard Again √
7A Keyboard Undo √
7B Keyboard Cut √
7C Keyboard Copy √
7D Keyboard Paste √
7E Keyboard Find √
7F Keyboard Mute √
80 Keyboard Volume Up √
81 Keyboard Volume Down √
82 Keyboard Locking Caps Lock12 √
83 Keyboard Locking Num Lock12 √
84 Keyboard Locking Scroll Lock12 √
85 Keypad Comma27 107
86 Keypad Equal Sign29
87 Keyboard International115,28 56
88 Keyboard International216
89 Keyboard International317
8A Keyboard International418
8B Keyboard International519
8C Keyboard International620
8D Keyboard International721
8E Keyboard International822
8F Keyboard International922
90 Keyboard LANG125
91 Keyboard LANG226
92 Keyboard LANG330
93 Keyboard LANG431
94 Keyboard LANG532
95 Keyboard LANG68
96 Keyboard LANG78
97 Keyboard LANG88
98 Keyboard LANG98
99 Keyboard Alternate Erase7
9A Keyboard SysReq/Attention1
9B Keyboard Cancel
9C Keyboard Clear
9D Keyboard Prior
9E Keyboard Return
9F Keyboard Separator
A0 Keyboard Out
A1 Keyboard Oper
A2 Keyboard Clear/Again
A3 Keyboard CrSel/Props
A4 Keyboard ExSel
165-175 A5-CF Reserved
B0 Keypad 00
B1 Keypad 000
B2 Thousands Separator 33
B3 Decimal Separator 33
B4 Currency Unit 34
B5 Currency Sub-unit 34
B6 Keypad (
B7 Keypad )
B8 Keypad {
B9 Keypad }
BA Keypad Tab
BB Keypad Backspace
BC Keypad A
BD Keypad B
BE Keypad C
BF Keypad D
C0 Keypad E
C1 Keypad F
C2 Keypad XOR
C3 Keypad ^
C4 Keypad %
C5 Keypad <
C6 Keypad >
C7 Keypad &
C8 Keypad &&
C9 Keypad |
CA Keypad ||
CB Keypad :
CC Keypad #
CD Keypad Space
CE Keypad @
CF Keypad !
D0 Keypad Memory Store
D1 Keypad Memory Recall
D2 Keypad Memory Clear
D3 Keypad Memory Add
D4 Keypad Memory Subtract
D5 Keypad Memory Multiply
D6 Keypad Memory Divide
D7 Keypad +/-
D8 Keypad Clear
D9 Keypad Clear Entry
DA Keypad Binary
DB Keypad Octal
DC Keypad Decimal
DD Keypad Hexadecimal
222-223 DE-DF Reserved
E0 Keyboard LeftControl 58 √ √ √ 4/101/104
E1 Keyboard LeftShift 44 √ √ √ 4/101/104
E2 Keyboard LeftAlt 60 √ √ √ 4/101/104
E3 Keyboard Left GUI10;23 127 √ √ √ 104
E4 Keyboard RightControl 64 √ √ √ 101/104
E5 Keyboard RightShift 57 √ √ √ 4/101/104
E6 Keyboard RightAlt 62 √ √ √ 101/104
E7 Keyboard Right GUI10;24 128 √ √ √ 104
232-65535 E8-FFFF Reserved

STM32 USB 鼠标+键盘 串口控制资源:
串口发送指令:
*MOS0101000000# 鼠标左键按下
*MOS0102000000# 鼠标右键按下
*MOS0103000000# 鼠标中键按下
*MOS0100000000# 鼠标抬起
*MOS01000a0000# 鼠标向+X移动0x0a个像素
*MOS01008a0000# 鼠标向-X移动0x0a补数个像素
*MOS0100000a00# 鼠标向+Y移动0x0a个像素
*MOS0100008a00# 鼠标向-Y移动0x0a补数个像素
*MOS010000000a# 鼠标向上滚动0x0a个像素
*MOS010000008a# 鼠标向下滚动0x0a补数个像素

*KEY0000040000000000# 输入a
*KEY0200040000000000# 输入A
具体键值请参考上方图片
STM32 USB 鼠标+键盘 串口控制资源: https://download.csdn.net/download/u012345203/10755574

STM32USB鼠标+键盘串口控制相关推荐

  1. 用鼠标键盘来控制你的Android手机——同屏显示简单教程

    本文转载自: https://www.cnblogs.com/lanxuezaipiao/p/3329897.html 作者:lanxuezaipiao 转载请注明该声明. 今天在微博上看到有人用电脑 ...

  2. android 控制电脑 源代码 鼠标,如何用鼠标键盘来控制手机?这个开源工具可以帮你做到...

    [摘要]scrcpy 可以将你的 Android 手机投屏到电脑上,并且通过鼠标和键盘来进行控制,有了它你就可以在电脑屏幕上管理手机. 手机和电脑之间的协作已经越来越常见:在电脑上登录账号,需要用手机 ...

  3. 如何用鼠标键盘来控制手机?这个开源工具可以帮你做到

    如何用鼠标键盘来控制手机?这个开源工具可以帮你做到 scrcpy 可以将你的 Android 手机投屏到电脑上,并且通过鼠标和键盘来进行控制,有了它你就可以在电脑屏幕上管理手机. 手机和电脑之间的协作 ...

  4. stm32 USB HID+CDC 鼠标键盘串口 组合设备配置解析

    前言 查阅网上的博客与代码,很多都是关于USB的鼠标配置.USB的键盘配置.USB的虚拟串口配置,稍微深入一点的会将鼠标键盘合在一起,但移植起来就会报很多错误,要么是检测不到,要么是警告,这很正常,因 ...

  5. python如何控制鼠标键盘_Python控制鼠标键盘

    网上有使用PyMouse,PyKeyboard,PyUserInput(前两者的整合,不活跃)的,但发现我并不适用,Pip都装不上,所以寻着PyUserInput的Readme文件找到了Pynput这 ...

  6. 【Linux】打开虚拟机显示“未能对鼠标-键盘-屏幕控制初始化”(VMware)

    解决办法 非常简单,打开虚拟机设置,进入选项,将增强型键盘改为在可用时使用 参考:https://www.ncnynl.com/archives/202103/4097.html

  7. (1)鼠标键盘按键控制人物

    1.input.getkey()获取键:当用户按下由name名称确定的按键时,然后true. input.getkeyup()获取键抬起:在用户释放给定名字的按键的那一帧返回true. //长按W播放 ...

  8. android 键盘使用教程,用鼠标键盘控制你的Android手机完整图文教程

    网上大都是91助手for android来连接手机和电脑,我自己比较偏向于豌豆荚,都可以的,下面给出我的步骤及过程中遇到的几个小问题,供大家参考! 一.鼠标键盘控制手机教程 1.在PC上,安装豌豆荚, ...

  9. android usb鼠标,用鼠标键盘控制你的Android手机完整图文教程

    网上大都是91助手for android来连接手机和电脑,我自己比较偏向于豌豆荚,都可以的,下面给出我的步骤及过程中遇到的几个小问题,供大家参考! 一.鼠标键盘控制手机教程 1.在PC上,安装豌豆荚, ...

  10. android键盘管理,用鼠标键盘控制你的Android手机完整图文教程

    32路伺服电机控制器V3.0 官方安装版 类型:编程辅助大小:15.0M语言:中文 评分:7.5 标签: 立即下载 网上大都是91助手for android来连接手机和电脑,我自己比较偏向于豌豆荚,都 ...

最新文章

  1. sklearn自学指南(part20)--收缩和协方差估计
  2. 计算机硬件系统都是看得见的,计算机组成硬件系统).doc
  3. 折线图_Pyecharts数据可视化分析—折线图
  4. SCSI代码分析(5)SCSI驱动编程模式
  5. 丢失MSVCR71.dll问题解决
  6. java 比较源文件_Beyond Compare比较Java源代码文件的详细操作方法
  7. 超实数与实数本是同根生
  8. ggplot2绘制数据分布crossbar图教程
  9. 免费网络硬盘、FTP、大容量邮箱、电子相册合集
  10. vs2017运行yolov4_VS2017运行YOLOv4
  11. JQuery中的each()方法和$.each()函数的使用
  12. 计算机操作系统pv实验,计算机操作系统PV操作例题.doc
  13. 手机横屏怎么设置放大字_手机锁屏可以滚动的文字怎么设置?手把手教你如何设置,太简单了...
  14. h5: canvas如何设置高度和宽度
  15. 面试官:MySQL索引为什么要用B+树实现?
  16. 普特英语听力——前言
  17. 我自己很喜欢的几款文案编辑软件
  18. 2019年ios权限描述文字—所有APP通用版包过App Store审核
  19. 基于java-swing的开心农场游戏
  20. 充分激发自己的内在潜能

热门文章

  1. Jsrpc学习——Cookie变化的网站破解教程
  2. HPE主机根据磁盘序列号或位置确定Naa号
  3. 个人简介之物理层安全
  4. 用WinDbg探索CLR世界 [4] 方法的调用机制
  5. mac php pear pecl,mac 安装 pecl pear
  6. 【HDU 6638】Snowy Smile(线段树求区间连续最大和)
  7. layui日期插件样式冲突
  8. Katalon Recorder简介与使用
  9. 疫情之后,各地智慧灯杆政策与项目发布情况汇总
  10. directive 自定义指令