USB鼠標通信協議格式

聲明:本文原出處:http://bbs.ednchina.com/BLOG_ARTICLE_2111716.HTM作者文章。


鼠標發送給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的正負表示鼠標移動方向 

鍵盤發送給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 -- 這六個爲普通按鍵 
鍵盤經過測試。 
例如:鍵盤發送一幀數據   02 00 0x04 0x05 00 00 00 00 
表示同時按下了Left Shift + ‘a’+‘b’三個鍵 


如原涉及版權請聯繫我,我將刪除該貼。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章