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 ...
随机推荐
- (简单)华为Nova青春 WAS-AL00的USB调试模式在哪里开启的流程
就在我们使用Pc接通安卓手机的时候,如果手机没有开启usb开发者调试模式,Pc则无办法成功检测到我们的手机,在一些情况下,我们使用的一些功能较强的app好比之前我们使用的一个app引号精灵,老版本就需 ...
- JPA javax.persistence.TransactionRequiredException
直接说一下解决方案 Dao层,一定要是Dao层. 1 增加Transactional,必须要事务! 2 增加Modifying,告诉jpa这是修改! @Transactional @Modifying ...
- ubuntu 安装 evpp
ubuntu 安装 evpp 来源 https://www.cnblogs.com/wisdomyzw/p/9402440.html Ubuntu虚拟机安装开源库evpp说明: EVPP为奇虎360基 ...
- Nginx与前端开发
Nginx与Node.js "Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻塞处理方式框架,这让其具有极好的IO性能,时常用于服务端的反向代理和负载均衡." 作为前 ...
- @Controller @RestController
知识点:@RestController注解相当于@ResponseBody + @Controller合在一起的作用. 1) 如果只是使用@RestController注解Controller,则Co ...
- POJ-3494 Largest Submatrix of All 1’s (单调栈)
Largest Submatrix of All 1’s Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 8551 Ac ...
- leveldb实现原理
LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanja ...
- 静态网站创建工具Docusaurus
地址:https://docusaurus.io/docs/zh-CN/installation 安装 Docusaurus
- 基于jdk1.8的ArrayList源码分析
前言ArrayList作为一个常用的集合类,这次我们简单的根据源码来看看AarryList是如何使用的. ArrayList拥有的成员变量 public class ArrayList<E> ...
- 【转载】C++ STL快速入门
https://www.cnblogs.com/skyfsm/p/6934246.html