[牛人杂谈] USB HID 鼠标信息解析

[复制链接]
1506|5
 楼主| huangcunxiake 发表于 2016-8-27 09:00 | 显示全部楼层 |阅读模式
鼠标发送给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表示右键按下  0表示右键抬起
       |--bit0:     1表示左键按下  0表示左键抬起
BYTE2 -- X坐标变化量,与byte的bit4组成9位符号数,负数表示向左移,正数表右移。用补码表示变化量  
BYTE3 -- Y坐标变化量,与byte的bit5组成9位符号数,负数表示向下移,正数表上移。用补码表示变化量
BYTE4 -- 滚轮变化。0x01表示滚轮向前滚动一格;0xFF表示滚轮向后滚动一格;0x80是个中间值,不滚动。


试验数据:

BYTE2 X坐标变化量,当BYTE1的bit4为0的时候,0x01~0x7F为向左移动,0x81~0xFF为向右移动,0x00,0x80为不移动。BYTE1的bit4为1的时候,依旧。试验数据是跟BYTE1的bit4没什么关系。

BYTE3的变化跟BYTE2的一样。



 楼主| huangcunxiake 发表于 2016-8-27 09:01 | 显示全部楼层
因此BYTE2/BYTE3/BYTE4的变化趋势都是一样的,中间是分界点,山峰结构。从低到高,再从高到低。
玛尼玛尼哄 发表于 2016-8-27 14:01 | 显示全部楼层
主要是掌握通信协议接口,怎么解码。
天灵灵地灵灵 发表于 2016-8-27 14:41 | 显示全部楼层
原来鼠标传递的信息这么简单,以为很复杂的东西呢。还用USB通信。
dongnanxibei 发表于 2016-8-27 15:10 | 显示全部楼层
每次发送4个字节,这4个字节的不同位,代表不同的意思
捉虫天师 发表于 2016-8-27 15:20 | 显示全部楼层
一共4个字节,第一个用于按键的操作传递信息,后面的就是方向和滚轮。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

3745

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部