USB-HID键鼠通讯数据格式

[复制链接]
查看1516 | 回复5 | 2023-10-17 15:00:44 | 显示全部楼层 |阅读模式

1. 鼠标的通讯数据格式

鼠标发送给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 -- 滚轮变化。
BYTE1的4-7全为0的时候,BYTE2 BYTE3的正负表示鼠标移动方向。

2. 键盘的通讯数据格式

键盘发送给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三个键。

选择去发光,而不是被照亮
回复

使用道具 举报

爱笑 | 2023-10-17 15:47:46 | 显示全部楼层
学习了~
用心做好保姆工作
回复

使用道具 举报

18350766600@139 | 2023-10-17 15:53:18 | 显示全部楼层
不错,学习了
回复 支持 1 反对 0

使用道具 举报

lsrly | 2023-10-17 17:31:24 | 显示全部楼层
这是个硬货,可以自己做键盘
回复 支持 1 反对 0

使用道具 举报

jkernet | 2023-10-17 20:29:39 | 显示全部楼层
学习了
回复

使用道具 举报

bzhou830 | 2024-7-22 09:30:09 | 显示全部楼层
选择去发光,而不是被照亮
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则