鼠标发送给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鼠标键盘数据格式以及按键键值的更多相关文章

  1. android 添加一个按键键值【转】

    本文转载自:http://blog.csdn.net/u012719256/article/details/52526046 1.frameworks/base/data/keyboards/Gene ...

  2. js获取键盘按下的键值event.keyCode,event.charCode,event.which的兼容性

    js获取键盘按下的键值有event.keyCode,event.charCode和event.which 其中: 谷歌浏览器对event.keyCode,event.charCode和event.wh ...

  3. 使用Gadget 做usb鼠标键盘设备

    使用Gadget 做usb鼠标键盘设备 感谢TI社区提供的好帮助啊!http://e2e.ti.com/support/arm/sitara_arm/f/791/p/571771/2103409?pi ...

  4. C# 键盘响应事件及键值对照表

    键盘响应事件总结 键盘响应事件是在用户按下某个键后触发的事件,可以是任意操作,但不是任意键都可以被捕获的. 原型:public event KeyPressEventHandler KeyPress ...

  5. Qt移植对USB鼠标键盘、触摸屏的支持

    .USB键盘 经过一番搜索,发现对Qt键盘的支持主要关系到两个方面: 1. 键盘类型确定: 4.7以前的Qt版本,如果是PS2圆孔键盘,Qt编译时需加上选项:-qt-kbd-vr41xx(未测试):如 ...

  6. jQuery键盘控制方法,以及键值(keycode)对照表

    键盘控制应用范围非常广泛,比如快捷键控制页面的滚动:在填写表单时候,限制输入内容:或者是屏蔽复制.粘贴.退后等功能.这里说说用jQuery怎么来实现.个人觉得jQuery比原生态的JS好用,代码简单清 ...

  7. STM32 USB 鼠标+键盘 串口控制

    *MOS0101000000# 鼠标左键按下 *MOS0102000000# 鼠标右键按下 *MOS0103000000# 鼠标中键按下 *MOS0100000000# 鼠标抬起 *MOS01000a ...

  8. 解决ubuntu16.04 USB鼠标键盘使用卡顿

    小米游戏本,键盘突然M建不能用,去了售后换了个键盘. 小米售后真的不想吐槽……入坑 键盘鼠标卡顿由于挂起导致失灵,每次需要激活所以卡顿 解决办法如下: 编辑如下文件配置 sudo vim /etc/l ...

  9. Qt 按键键值 与 相关字符串 的映射表(转)

    Qt快捷键 映射     "Esc",/*Qt::Key_Escape 0x01000000 */ "Tab",/*Qt::Key_Tab 0x01000001 ...

随机推荐

  1. varnish与squid缓存效率对比实例

    前提:安装varnish.squid.webbench(压测工具) 注:varnish和squid机都未安装其他多余服务,服务器绑定域名为www.dannylinux.top  (为同一台服务器,测试 ...

  2. macbook 入门

    前面的话 第一次使用 Mac 之前,需要改变一些原有思维,不应该使用 Windows 的思维习惯去使用 Mac,Mac 会节省系统维护.清理杀毒.升级驱动等操作的时间,让我们可以专注做真正重要的事情, ...

  3. Leetcode 4.28 Tree Easy

    1. 101. Symmetric Tree 用递归. class Solution { public boolean isSymmetric(TreeNode root) { if( root == ...

  4. ORACLE数据闪回

    ALTER TABLE SPM_CON_PAYMENT_RECEIPT ENABLE ROW MOVEMENT;   -- 表名 FLASHBACK TABLE SPM_CON_PAYMENT_REC ...

  5. 数据库设计很棒的参考CDM-PDM-LDM-PowerDesigner

    此页面显示了涵盖主题领域的  50 个类别中的行业特定数据模型列表,用于创建企业数据模型. 以下是我们所有 1,700 多种数据模型的字母顺序列表 1. 广告 1. 顾客 1. 派对 1.   广告中 ...

  6. P1438 无聊的数列 (差分+线段树)

    题目 P1438 无聊的数列 解析: 先考虑修改,用差分的基本思想,左端点加上首项\(k\),修改区间\((l,r]\)内每个数的差分数组都加上公差\(d\),最后的\(r+1\)再减去\(k+(r- ...

  7. 【JVM】JVM随笔索引

    JVM目录 [JVM]Java内存模型 [JVM]类加载机制 [JVM]深度分析Java的ClassLoader机制(源码级别) [JVM]关于类加载器准备阶段的一道面试题目 [JVM]JVM垃圾收集 ...

  8. 【dp】合唱队形

    题目描述 NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K,他们的身高分别为 ...

  9. noi.ac309 Mas的童年

    题目链接 题面 题目描述 \(Mas\)完成了一天的工作,走在回家的路上,看着路边的景色,他想起来自己的童年. 许许多多的记忆交错,丝丝缕缕的牵扯着\(Mas\). 在回忆的深处,\(Mas\)想起来 ...

  10. QString与LPWSTR之间的转换;

    QString 转换成 LPWSTR LPWSTR lpStr = (LPWSTR) QString("nihao").toStdWString().c_str();