2. 程式完整範例下載連結: (使用IAR EWARM v7.7)
stm32f429_usb_host_hid_mouse_keyboard
3. Main flow:
- 程式基本流程與stm32f429_usb_host_hid_mouse的內容幾乎一模一樣, 僅差別在mouse/keyboard的init/decode程式而已.
- 程式一開始仍然是對usb host hid 去做init.
4. Test flow:
- 在未接上Keyboard至裝置時, 僅會執行LED/Button/LCM的Init function.
- 當接上keyboard且系統偵測到後, 會在LCM上顯示Keyboard的基本資訊., 若是要開始進行測試的話, 就需要按下user button.
- 當按下user button後, 就會到達顯示的視窗, 此時在Keyboard上面按下按鍵, 就會顯示在LCM上面.
- 這是按下"jkl456789"的訊息.
5. Test Video: 為了方便拍攝, 僅使用數字鍵盤測試.
請問一下,如果是多媒体按键的特殊鍵按下時會收到按鍵碼嗎?例如AL Calculator,AL Email,設備有用到hid_Multimedia_report_descriptor的部分。
回覆刪除Hello:
刪除還是會有鍵碼喔, 例如像最常看到的音量加減鍵, 只是你必須要在usb descriptor裡面定義,
建議你可以先用bus hound先測試會比較好.
Have a nice day,
JustinWang
Hi Justin
刪除目前我們試過了幾個方式,用BUS BOUND去分析,確實是有資料的,也用羅輯分析儀去分析,在交握時會有兩個介面,介面之間的差別就是endpoint的部分,其中一個介面端點(endpoint)為1,另一個介面的端點為2。目前按下一般按鍵是有的鍵碼的,但按下特殊鍵是沒有的,用羅輯分析儀看HOST端只是以端點1的格式在詢問Device(Keyboard),並沒有以端點2的介面詢問,所以當按下特殊鍵(AL Calculator)時就沒有資料回覆。請問一下您說的usb descriptor裡面定義一般不是在Device裡面改嗎?HOST端需要修改什麼嗎?
Hi:
刪除我的意思是說先使用bus hound確認Device從哪一個端點上報特殊鍵的資料, 還有要確認特殊鍵和一般鍵是不是使用不同的Report ID來上報資料給Host.
Have a nice day,
JustinWang
Hi Justin
刪除目前已知Device是從端點2報上特殊鍵的資料,特殊鍵與一般鍵是使用不同的Report ID,特殊鍵是使用0x82, 一般鍵是使用0x81給Host。
請問特殊鍵的資料現在解決了嗎?
刪除