USB鼠标的数据格式
USB鼠标的数据格式由HID(Human Interface Device)协议定义,通常包含3个字节的标准数据,具体格式如下:
字节 | 内容 | 描述 |
---|---|---|
第1字节 | 按键状态 | Bit 0: 左键按下(1)<br>Bit 1: 右键按下(1)<br>Bit 2: 中键按下(1)<br>Bit 3-7: 保留或设备特定功能 |
第2字节 | X轴移动量 | 表示鼠标在X方向上的相对移动量,范围为-127到+127。 |
第3字节 | Y轴移动量 | 表示鼠标在Y方向上的相对移动量,范围为-127到+127。 |
数据格式说明
-
按键状态:
-
Bit 0 = 1:左键按下
-
Bit 1 = 1:右键按下
-
Bit 2 = 1:中键按下
-
Bit 3-7:保留或用于设备特定功能。
-
-
移动量:
-
X轴和Y轴的移动量是相对值,表示鼠标相对于上一次报告的移动距离。
-
如果移动量超出-127到+127的范围,可能会触发溢出标志(通常在第1字节的Bit 6和Bit 7中表示)。
-
-
扩展数据:
-
有些鼠标可能包含第4字节,用于表示滚轮的移动量。
-
示例
假设接收到的数据为:0x01, 0x05, 0xF0
,其含义为:
-
第1字节:
0x01
,表示左键按下。 -
第2字节:
0x05
,表示鼠标在X方向上向右移动了5个单位。 -
第3字节:
0xF0
,表示鼠标在Y方向上向上移动了16个单位(0xF0
= -16,因为是补码表示)。
通过解析这些数据,可以实现对鼠标位置和按键状态的实时监控。