USB鼠标键盘协议

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 – 滚轮变化。

键盘发送给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 – 这六个为普通按键

------------- The End -------------