1. 程式人生 > >usb的hid滑鼠鍵盤報告描述符(五)

usb的hid滑鼠鍵盤報告描述符(五)


title: usb的hid滑鼠鍵盤報告描述符
tags: linux
date: 2018/12/20/ 18:05:08
toc: true
---

usb的hid滑鼠鍵盤報告描述符

https://blog.csdn.net/xqhrs232/article/details/79184272

滑鼠

滑鼠傳送給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 -- 滾輪變化。

鍵盤

這個在Device Class Definition for Human Interface Devices (HID)8.3 Report Format for Array Items中描述

鍵盤傳送給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 -- 這六個為普通按鍵