HID鍵盤程序
1. 特別注意
需要特別注意,各個例程中的設備描述符,配置描述符等各種描述符都是已經配置好了的,我們需要做的只是在例程中將代碼修改為自己需要的部分即可,一般情況下是不可以串搭配的。
2. 程序解析
此程序使用的是端口1中斷,進行數據的傳輸。
此程序的用戶核心部分為periph.c文件中的“初始化函數TD_init()”和“循環執行函數TD_pull()”。
由圖 1可知,開發板上的兩個按鍵S1、S2和兩個LED燈D4、D5都是接在端口PE上的。

圖 1 開發板原理圖
TD_init()函數就是完成對端口PE的初始化,以及端口1的中斷使能。
TD_pull()函數就是通過檢測PE4和PE5電平的變化,來向上位機傳送相應的代碼。同時,檢測端口1中斷數據,通過控制PE0和PE1的電平高低進行相應。
3. 實驗驗證
在通過Cypress USB Consloe給開發板燒錄之后,就不能通過Cypress USB Console檢測開發板了,因為這時已經被配置為HID設備,Cypress USB Console不能檢測HID設備。
此時開發板上的S1,S2分別對應a和shift按鍵,可以通過在文檔中輸入檢測。在鍵盤板上按Caps Lock或Num按鍵,開發板上的D4,D5會隨着鍵盤板上的燈同樣變化。
在這里可以得出結論,我們USB鍵盤板上的燈不是通過鍵盤板上的按鍵直接控制的,而是上位機檢測到鍵盤板上的按鍵被按下,然后給鍵盤發送一個命令,來控制鍵盤板上的指示燈亮滅的。
