我正在嘗試製作HID USB設備。我搜索了一下,發現鍵盤的輸出有8個字節。第一個字節是修飾符,第2個字節是保留的,其餘6個字節是鍵碼。我認爲在某些情況下,比如「prtsc」多於單個字節是必需的。我想知道HID USB鍵盤
1.是從USB HID鍵盤輸出的數據總是8個字節或不是這個(取決於所按鍵的類型會有所不同)。
2.是否還有其他前綴或後綴數據以及這8個字節來標識新按鍵的開始和結束?
Regards, Rahul。
我正在嘗試製作HID USB設備。我搜索了一下,發現鍵盤的輸出有8個字節。第一個字節是修飾符,第2個字節是保留的,其餘6個字節是鍵碼。我認爲在某些情況下,比如「prtsc」多於單個字節是必需的。我想知道HID USB鍵盤
1.是從USB HID鍵盤輸出的數據總是8個字節或不是這個(取決於所按鍵的類型會有所不同)。
2.是否還有其他前綴或後綴數據以及這8個字節來標識新按鍵的開始和結束?
Regards, Rahul。
我認爲在某些情況下,如「PRTSC」超過一個字節是needed.I 想知道
無,當前定義的一組鍵盤用法範圍從0x04到0xE7,因此它們都可以由一個字節索引。
1.是否從usb hid鍵盤輸出的數據總是8字節或不會(取決於所按鍵的類型會有所不同)。
這是一個固定的長度,但它並不總是必須是8個字節(除非您的設備需要啓動計算機時被識別爲鍵盤...的CMOS引導固件不會處理HID報告描述符等等報告緩衝區是預定的固定8字節)。 HID報告描述符定義的最小值(我測試過的)是3個字節(1個修改字節,1個保留字節和1個密鑰索引字節)。
2.是否還有其他前綴或後綴數據以及這8個字節來標識新按鍵的開始和結束?
否。6個字節(在前兩個字節後)表示同時按下的鍵(在此情況下最多爲6個)。如果當前沒有鍵被按下,那麼所有6個字節都應該包含0x00。每個字節是LOGICAL_MINIMUM和LOGICAL_MAXIMUM之間的索引,它們被一對一地映射到(通常)由USAGE_MINIMUM和USAGE_MAXIMUM定義的一系列鍵盤用法,或者各個用法的列表或兩者的組合。例如,如果按下A和B鍵,則緩衝區將包含這兩種用法的索引(以任何順序),其餘字節應爲0x00。如果隨後釋放A,那麼緩衝區仍應包含B用法的索引(其餘字節設置爲0x00)。如果您忘記通過將緩衝區清除爲零來發送密鑰釋放信號,那麼您很可能會看到主機設備(通常是PC)上最後一次更改的密鑰被重複使用。密鑰重複延遲和速率純粹是主機功能。
你應該參考這個文件USB HID usage table,第53頁。
完全正確的答案的詳細信息。 – user3710272