打印
[牛人杂谈]

USB HID 鼠标信息解析

[复制链接]
1287|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通信。

使用特权

评论回复
5
dongnanxibei| | 2016-8-27 15:10 | 只看该作者
每次发送4个字节,这4个字节的不同位,代表不同的意思

使用特权

评论回复
6
捉虫天师| | 2016-8-27 15:20 | 只看该作者
一共4个字节,第一个用于按键的操作传递信息,后面的就是方向和滚轮。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

205

主题

3485

帖子

10

粉丝