USB小白學習之路(4)HID鍵盤程式

2022-05-15 13:48:03 字數 971 閱讀 5440

需要特別注意,各個例程中的裝置描述符,配置描述符等各種描述符都是已經配置好了的,我們需要做的只是在例程中將**修改為自己需要的部分即可,一般情況下是不可以串搭配的。

此程式使用的是埠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的電平高低進行相應。

在通過cypress usb consloe給開發板燒錄之後,就不能通過

cypress usb console

檢測開發板了,因為這時已經被配置為

hid裝置,

cypress usb console

不能檢測

hid裝置。

此時開發板上的s1,

s2分別對應a和

shift

按鍵,可以通過在文件中輸入檢測。在鍵盤板上按

caps lock

或num

按鍵,開發板上的d4,

d5會隨著鍵盤板上的燈同樣變化。

在這裡可以得出結論,我們usb鍵盤板上的燈不是通過鍵盤板上的按鍵直接控制的,而是上位機檢測到鍵盤板上的按鍵被按下,然後給鍵盤傳送乙個命令,來控制鍵盤板上的指示燈亮滅的。

通訊小白學習之路

分層小區的無線資源管理 因為使用者和業務分布的不均勻我們在熱點地區架設微基站,在乙個巨集基站的範圍內可以分布多個微基站,巨集蜂窩用來維持基本的通訊需求但可能資料傳輸的速率不高但可以支援較快的移動速率,這就使得在使用微基站來滿足熱點地區較快的資料速率的同時減小切換的頻率,能夠保證穩定的通訊質量。簡單來...

Android小白學習之路

剛實習的安卓小白乙隻。以這樣的方式記錄下每天的收穫,努力前行。今天是學習安卓的第五天。這幾天主要看了android的四大元件中的兩個service和activity。activity代表了乙個螢幕,當使用者選擇了另乙個activity的時候,當前的就會被放入到 棧中 遵循先進後出。每建立乙個acti...

Python小白學習之路

類與物件 python的成員函式在,預設有乙個self引數,這是類的成員函式與普通函式的主要區別,self,位於引數列表的開頭,self也代表類的例項 物件 自身,可以使用self引用類中的屬性和成員函式。在類的成員函式中訪問例項屬性需要以self為字首。建構函式 init 類例項化就自動呼叫此建構...