<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > LPC1114/LPC11U14和LPC1343對比學(xué)習(八)USB

LPC1114/LPC11U14和LPC1343對比學(xué)習(八)USB

作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò ) 收藏

在HID的8種描述符中,最為重要而且復雜的應該是報表描述符,其定義了數據的存儲格式和實(shí)際意義。如果能夠正確的理解報表描述符,那么對數據的處理就能達到應用自如了,所以在設計描述符的時(shí)候,一定好多話(huà)費時(shí)間來(lái)理解和編寫(xiě)這一部分的內容。特別要主要以下幾點(diǎn):

1. 輸入輸出等項使用的數據必須是整數字節,如果沒(méi)有完全使用到,也必須通過(guò)說(shuō)明來(lái)補齊。

2.主要報表的三種項的應用及使用范圍。

命令請求:

HID設備類(lèi)特定的命令有6個(gè):Get_Report、Get_Idle、Get_Protocol、Set_Report、Set_Idle、Set_Protocol。

通過(guò)近段時(shí)間來(lái)對NXP的HID例程的學(xué)習,對其有了個(gè)大致的了解,USB一個(gè)包含以下幾個(gè)文件:

1. hid.h文件對HID協(xié)議中使用到的各種描述符、字段等進(jìn)行了全面的描述和定義,在需要更改其他應用時(shí),只需要選擇相應的宏就可以,非常清晰明確。

2.hiduser.c/hiduser.h文件對HID中需要使用到的6中設備命令請求函數進(jìn)行了編寫(xiě)描述。

3.usb.h文件對USB標準中需要使用的報告和描述符進(jìn)行全面的定義。

4.usbcfg.h文件對USB中應用到的電源、端點(diǎn)、接口、緩沖等進(jìn)行配置說(shuō)明,完全可以根據自己的需要來(lái)配置USB。

5.usbcore.c/usbcore.h文件是USB協(xié)議內核文件,是各種USB開(kāi)發(fā)必備文件,完成了USB的核心內容,也是USB開(kāi)發(fā)的難點(diǎn)和重點(diǎn)。

6.usbdesc.c/usbdesc.h文件為USB各種描述符的實(shí)現代碼,開(kāi)發(fā)不同的HID設備時(shí),需要在此文件中更改相應描述。

7.usbhw.c/usbhw.h文件實(shí)現與USB相關(guān)的硬件配置等。

8.usbuser.c/usbuser.h文件實(shí)現各種事件和端點(diǎn)的實(shí)現代碼,根據自己的應用更改端點(diǎn)代碼實(shí)現USB通信。

在HID開(kāi)發(fā)中,報告描述符是最關(guān)鍵而且最復雜的描述符,因為它沒(méi)有專(zhuān)門(mén)的格式,隨意性比較大,但是HID的數據解析完全是依靠此描述符。

下面是NXP例程中的HID的報告描述符:

程序代碼都注釋了,這里不再詳細說(shuō)明,需要注意中間三段代碼:

1. 第一段中定義了一個(gè)Input,數據為1位,一共有3個(gè)這樣是數據;

2. 第二段中定義了一個(gè)Input,數據為1位,一共有5個(gè)這樣是數據,不過(guò)需要注意,這里定義的是常量。就是說(shuō)這里的5個(gè)位并沒(méi)用實(shí)際意義,完全是為了補齊一個(gè)字節的。這一點(diǎn)要注意,在報告描述符中,必須使用整數字節。

3. 第三段中定義了一個(gè)Output,數據為1位,一共有8個(gè)這樣的數據,也就是說(shuō),由8個(gè)位組成的一字節輸出數。

到此我們不難看出此HID使用的是1字節是輸入和1字節是輸出,只是在1字節輸入數據中,這里只使用了3為。對于其他的描述符這里就不再說(shuō)明,可以直接對照上面的描述符格式就可以看懂,需要注意HID必須設置的幾個(gè)字段就行了。

其他描述符:

在這些描述符中我們可以看出設備的具體功能,以及通信使用的端點(diǎn),緩存等

通過(guò)上述對描述符的了解,基本的HID信息我們已經(jīng)了解,下面就可以編寫(xiě)程序,通過(guò)把獲取的數據進(jìn)行驗證了,這里我們是通過(guò)按鍵按下給PC發(fā)送數據,通過(guò)PC發(fā)送數據在設備上通過(guò)LED顯示的。

到此就可以把代碼下載到開(kāi)發(fā)板上,并通過(guò)實(shí)驗進(jìn)行驗證了。下面我們采取兩種方法:

1.使用周工例程中的HID Client上位機軟件,進(jìn)行驗證。

把開(kāi)發(fā)板下載代碼后插入PC,通過(guò)Device選擇我們的“LPC11Uxx USB HID”設備,下面我們可以看出,設備在沒(méi)有鍵按下時(shí)讀取為0x01,當按下鍵時(shí),讀取為0x00。在Outputs中勾選相應的復選框,我們可以看到開(kāi)發(fā)板上相應的LED就別點(diǎn)亮了。



關(guān)鍵詞: LPC1114LPC11U14LPC1343US

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>