蓝牙 USB HID mouse send report

内容为网络转载,如有版权问题请联系删除  

USB鼠标键盘协议介绍。 

鼠标发送给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的正负表示鼠标移动方向

例:

/*鼠标*/
0x05, 0x01,     
0x09, 0x02,  
0xa1, 0x01,
/*第一个字节数据*/
0x85, HID_MOUSE_ID,  // 4
/*第二个字节数据*/
0x09, 0x01, 
0xa1, 0x00, 
0x05, 0x09, 
0x19, 0x01, 
0x29, 0x05, 
0x15, 0x00,  
0x25, 0x01, 
0x95, 0x05,  
0x75, 0x01, 
0x81, 0x02,  
0x95, 0x01, 
0x75, 0x03,  
0x81, 0x01, //13
/*第三个字节数据*/
0x05, 0x01,  
0x09, 0x30, 
/*第四个字节数据*/
0x09, 0x31,  
/*第五个字节数据*/
0x09, 0x38,
0x15, 0x81, 
0x25, 0x7f,  
0x75, 0x08, 
0x95, 0x03,  
0x81, 0x06, 
0xc0, 
0xc0,

猜你喜欢

转载自blog.csdn.net/a1028732302/article/details/84253209