USB鼠标键盘数据格式以及按键键值
鼠标发送给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’三个键
第一列10进制键值,第二列16进制键值,第四列是按键 Reserved (no event indicated) N/A √ √ √ //
Keyboard ErrorRollOver9 N/A √ √ √ //
Keyboard POSTFail9 N/A √ √ √ //
Keyboard ErrorUndefined9 N/A √ √ √ //
Keyboard a and A4 √ √ √ //
Keyboard b and B √ √ √ //
Keyboard c and C4 √ √ √ //
Keyboard d and D √ √ √ //
Keyboard e and E √ √ √ //
Keyboard f and F √ √ √ //
0A Keyboard g and G √ √ √ //
0B Keyboard h and H √ √ √ //
0C Keyboard i and I √ √ √ //
0D Keyboard j and J √ √ √ //
0E Keyboard k and K √ √ √ //
0F Keyboard l and L √ √ √ //
Keyboard m and M4 √ √ √ //
Keyboard n and N √ √ √ //
Keyboard o and O4 √ √ √ //
Keyboard p and P4 √ √ √ //
Keyboard q and Q4 √ √ √ //
Keyboard r and R √ √ √ //
Keyboard s and S4 √ √ √ //
Keyboard t and T √ √ √ //
Keyboard u and U √ √ √ //
Keyboard v and V √ √ √ //
1A Keyboard w and W4 √ √ √ //
1B Keyboard x and X4 √ √ √ //
1C Keyboard y and Y4 √ √ √ //
1D Keyboard z and Z4 √ √ √ //
1E Keyboard and ! √ √ √ //
1F Keyboard and @ √ √ √ //
Keyboard and # √ √ √ //
Keyboard and $ √ √ √ //
Keyboard and % √ √ √ //
Keyboard and ^ √ √ √ //
Keyboard and & √ √ √ //
Keyboard and * √ √ √ //
Keyboard and ( √ √ √ //
Keyboard and ) √ √ √ //
Keyboard Return (ENTER) √ √ √ //
Keyboard ESCAPE √ √ √ //
2A Keyboard DELETE (Backspace) √ √ √ //
2B Keyboard Tab √ √ √ //
2C Keyboard Spacebar √ √ √ //
2D Keyboard - and (underscore) √ √ √ //
2E Keyboard = and + √ √ √ //
2F Keyboard [ and { √ √ √ //
Keyboard ] and } √ √ √ //
Keyboard \ and | √ √ √ //
Keyboard Non-US # and ~ √ √ √ //
Keyboard ; and : √ √ √ //
Keyboard ‘ and “ √ √ √ //
Keyboard Grave Accent and Tilde4 √ √ √ //
Keyboard, and < √ √ √ //
Keyboard . and > √ √ √ //
Keyboard / and ? √ √ √ //
Keyboard Caps Lock11 √ √ √ //
3A Keyboard F1 √ √ √ //
3B Keyboard F2 √ √ √ //
3C Keyboard F3 √ √ √ //
3D Keyboard F4 √ √ √ //
3E Keyboard F5 √ √ √ //
3F Keyboard F6 √ √ √ //
Keyboard F7 √ √ √ //
Keyboard F8 √ √ √ //
Keyboard F9 √ √ √ //
Keyboard F10 √ √ √ //
Keyboard F11 √ √ √ /
Keyboard F12 √ √ √ /
Keyboard PrintScreen1 √ √ √ /
Keyboard Scroll Lock11 √ √ √ //
Keyboard Pause1 √ √ √ /
Keyboard Insert1 √ √ √ /
4A Keyboard Home1 √ √ √ /
4B Keyboard PageUp1 √ √ √ /
4C Keyboard Delete Forward1; √ √ √ /
4D Keyboard End1 √ √ √ /
4E Keyboard PageDown1 √ √ √ /
4F Keyboard RightArrow1 √ √ √ /
Keyboard LeftArrow1 √ √ √ /
Keyboard DownArrow1 √ √ √ /
Keyboard UpArrow1 √ √ √ /
Keypad Num Lock and Clear11 √ √ √ /
Keypad / √ √ √ /
Keypad * √ √ √ //
Keypad - √ √ √ //
Keypad + √ √ √ //
Keypad ENTER5 √ √ √ /
Keypad and End √ √ √ //
5A Keypad and Down Arrow √ √ √ //
5B Keypad and PageDn √ √ √ //
5C Keypad and Left Arrow √ √ √ //
5D Keypad √ √ √ //
5E Keypad and Right Arrow √ √ √ //
5F Keypad and Home √ √ √ //
Keypad and Up Arrow √ √ √ //
Keypad and PageUp √ √ √ //
Keypad and Insert √ √ √ //
Keypad . and Delete √ √ √ //
Keyboard Non-US \ and |; √ √ √ //
Keyboard Application10 √ √
Keyboard Power9 √ √
Keypad = √
Keyboard F13 √
Keyboard F14 √
6A Keyboard F15 √
6B Keyboard F16
6C Keyboard F17
6D Keyboard F18
6E Keyboard F19
6F Keyboard F20
Keyboard F21
Keyboard F22
Keyboard F23
Keyboard F24
Keyboard Execute √
Keyboard Help √
Keyboard Menu √
Keyboard Select √
Keyboard Stop √
Keyboard Again √
7A Keyboard Undo √
7B Keyboard Cut √
7C Keyboard Copy √
7D Keyboard Paste √
7E Keyboard Find √
7F Keyboard Mute √
Keyboard Volume Up √
Keyboard Volume Down √
Keyboard Locking Caps Lock12 √
Keyboard Locking Num Lock12 √
Keyboard Locking Scroll Lock12 √
Keypad Comma27
Keypad Equal Sign29
Keyboard International115,
Keyboard International216
Keyboard International317
8A Keyboard International418
8B Keyboard International519
8C Keyboard International620
8D Keyboard International721
8E Keyboard International822
8F Keyboard International922
Keyboard LANG125
Keyboard LANG226
Keyboard LANG330
Keyboard LANG431
Keyboard LANG532
Keyboard LANG68
Keyboard LANG78
Keyboard LANG88
Keyboard LANG98
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
- A5-CF Reserved
B0 Keypad
B1 Keypad
B2 Thousands Separator
B3 Decimal Separator
B4 Currency Unit
B5 Currency Sub-unit
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
- DE-DF Reserved
E0 Keyboard LeftControl √ √ √ //
E1 Keyboard LeftShift √ √ √ //
E2 Keyboard LeftAlt √ √ √ //
E3 Keyboard Left GUI10; √ √ √
E4 Keyboard RightControl √ √ √ /
E5 Keyboard RightShift √ √ √ //
E6 Keyboard RightAlt √ √ √ /
E7 Keyboard Right GUI10; √ √ √
- E8-FFFF Reserved
点击链接加入群聊【西安电子开发交流群】:https://jq.qq.com/?_wv=1027&k=5MjknoT
<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=b198731df64742fda8d6948036eb6fd199b1994bb010f2362402c78cd3169c0d"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="西安电子开发交流群" title="西安电子开发交流群"></a>
USB鼠标键盘数据格式以及按键键值的更多相关文章
- android 添加一个按键键值【转】
本文转载自:http://blog.csdn.net/u012719256/article/details/52526046 1.frameworks/base/data/keyboards/Gene ...
- js获取键盘按下的键值event.keyCode,event.charCode,event.which的兼容性
js获取键盘按下的键值有event.keyCode,event.charCode和event.which 其中: 谷歌浏览器对event.keyCode,event.charCode和event.wh ...
- 使用Gadget 做usb鼠标键盘设备
使用Gadget 做usb鼠标键盘设备 感谢TI社区提供的好帮助啊!http://e2e.ti.com/support/arm/sitara_arm/f/791/p/571771/2103409?pi ...
- C# 键盘响应事件及键值对照表
键盘响应事件总结 键盘响应事件是在用户按下某个键后触发的事件,可以是任意操作,但不是任意键都可以被捕获的. 原型:public event KeyPressEventHandler KeyPress ...
- Qt移植对USB鼠标键盘、触摸屏的支持
.USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如 ...
- jQuery键盘控制方法,以及键值(keycode)对照表
键盘控制应用范围非常广泛,比如快捷键控制页面的滚动:在填写表单时候,限制输入内容:或者是屏蔽复制.粘贴.退后等功能.这里说说用jQuery怎么来实现.个人觉得jQuery比原生态的JS好用,代码简单清 ...
- STM32 USB 鼠标+键盘 串口控制
*MOS0101000000# 鼠标左键按下 *MOS0102000000# 鼠标右键按下 *MOS0103000000# 鼠标中键按下 *MOS0100000000# 鼠标抬起 *MOS01000a ...
- 解决ubuntu16.04 USB鼠标键盘使用卡顿
小米游戏本,键盘突然M建不能用,去了售后换了个键盘. 小米售后真的不想吐槽……入坑 键盘鼠标卡顿由于挂起导致失灵,每次需要激活所以卡顿 解决办法如下: 编辑如下文件配置 sudo vim /etc/l ...
- Qt 按键键值 与 相关字符串 的映射表(转)
Qt快捷键 映射 "Esc",/*Qt::Key_Escape 0x01000000 */ "Tab",/*Qt::Key_Tab 0x01000001 ...
随机推荐
- python_正则表达式随笔
webpage_regex = re.search(r'span_ed7[\s\S]*', dd) [\s\S]* 匹配多行,转义字符 webpage_regex = re.compile('< ...
- Spring Boot 2.x 编写 RESTful API (四) 使用 Mybatis
用Spring Boot编写RESTful API 学习笔记 添加依赖 <dependency> <groupId>org.mybatis.spring.boot</gr ...
- .Net Core 环境下构建强大且易用的规则引擎
本文源码: https://github.com/jonechenug/ZHS.Nrules.Sample 1. 引言 1.1 为什么需要规则引擎 在业务的早期时代,也许使用硬编码或者逻辑判断就可以满 ...
- 【CF715E】Complete the Permutations 第一类斯特林数
题目大意 有两个排列 \(p,q\),其中有一些位置是空的. 你要补全这两个排列. 定义 \(s(p,q)\) 为 每次交换 \(p\) 中的两个数,让 \(p=q\) 的最小操作次数. 求 \(s( ...
- css 图像热区
CSS图像热区 在img标签当中,存在一个属性usemap属性,用来和map标签进行绑定,从而实现图像热区.所谓的图像热区,其实指的是在图像中插入一个连接,当用户点击图像的指定区域后就会进行页面跳转. ...
- 在vue中关于element UI 中表格实现下载功能,表头添加按钮,和点击事件失效的解决办法。
因为在element 中表格是使用el-table的形式通过数据来支撑结构,所以,表格的样式没有自己写的灵活,所以有了没法添加按钮的烦恼.下面是解决的方法. 准备工作: 一.下载npm安装包两个 1. ...
- virtualbox+ubuntu
https://jingyan.baidu.com/article/7f766daff541cd4101e1d0cd.html ubuntu 安装 这台计算机似乎没有安装操作系统 待解决 注意ubun ...
- BAT面试经验分享——iOS高级开发工程师的自我总结!
序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了. 今年,找过工作人可能会更深刻地体会到今年的就业形势不容乐观,随着各大公司秋招的开始,很多小伙伴都行动起来了,我也有幸获得了一份不 ...
- python模拟蒙特·卡罗法计算圆周率
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, ...
- 分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比
分布式协调服务Zookeeper集群监控JMX和ZkWeb应用对比 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. JMX是用来远程监控Java应用的框架,这个也可以用来监控其他的J ...