<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è) > 嵌入式系統 > 設計應用 > 基于HID協(xié)議的工控自定義鍵盤(pán)接口設計

基于HID協(xié)議的工控自定義鍵盤(pán)接口設計

作者: 時(shí)間:2014-03-05 來(lái)源:網(wǎng)絡(luò ) 收藏
基于HID協(xié)議的工控自定義鍵盤(pán)接口設計

圖中J1為USB接口直接與STM32處理器PA11、PA12相連,J3、J4為鍵盤(pán)掃描接口,共引出16個(gè)IO,最多可掃描8*8矩陣鍵盤(pán)即64個(gè)按鍵。其余電路為處理器最小系統電路。

4 軟件設計

ST公司給我們提供了詳盡的The USB—FS—Device library固件庫,固件庫程序結構清晰,主要分為底層和上層兩個(gè)部分。

1)底層結構包括5個(gè)文件:usb_core.c(USB總線(xiàn)數據處理的核心文件),usb_init.c,usb_int.c(用于端點(diǎn)數據輸入輸入中斷處理),usb_mem.c(用于緩沖區操作),usb_regs.c(用于寄存器操作)。

2)上層結構總共5個(gè)文件:hw_config.c(用于USB硬件配置)、usb_pwr.c(用于USB連接、斷開(kāi)操作)、usb_istr.c(直接處理USB中斷)、usb_prop.c(用于上層協(xié)議處理,比如,大容量存儲設備協(xié)議)、usb_desc.c(具體設備的相關(guān)描述符定義和處理)。

基于STM32 USB固件庫的主程序設計流程如圖3所示。

基于HID協(xié)議的工控自定義鍵盤(pán)接口設計

設備初始化所做的工作主要有:初始化時(shí)鐘系統、GPIO及相關(guān)設備;配置USB所用到的中斷;配置和使能USB時(shí)鐘;初始化全局指針。

進(jìn)入主程序大循環(huán)后,掃描按鍵改動(dòng),按鍵有變動(dòng),通過(guò)SendReport()函數將按鍵狀態(tài)發(fā)送到USB主機。實(shí)際上這里只是將數據寫(xiě)入IN端點(diǎn)緩沖區,主機的IN令牌包來(lái)的時(shí)候,SIE負責把它返回給主機。

5 系統測試與應用

軟件設計完成后,將程序下載到STM32處理器中,連接計算機USB給處理器上電,在完成設備初始化后,打開(kāi)計算機設備管理器可以看到鍵盤(pán)設備中新增一項HID Keyboard Device(如圖4),這時(shí)鍵盤(pán)設備已經(jīng)作為標準HID設備被計算機識別了。

基于HID協(xié)議的工控自定義鍵盤(pán)接口設計

接下來(lái)要進(jìn)行的工作要根據鍵盤(pán)定制要求,查閱HID用途表文檔,確定上行列值對應的按鍵代碼,修改函數SendReport(),完成鍵盤(pán)定制程序設計。函數SendReport()返回8字節報告暫存在數組Buf[8]中。通過(guò)報告描述符的定義及HID用途表文檔,可知Buf[0]的D0是左Ctrl鍵,D1是左Shift鍵,D2是左Alt鍵,D3是左GUI(即Window鍵),D4是右Ctrl,D5是右Shift,D6是右Alt,D7是右GUI鍵。Buf[1]保留,值為0。Buf[2]-Buf[7]為鍵值,最多可以有6個(gè)。

6 結論

在工業(yè)控制應用領(lǐng)域,定制屢見(jiàn)不鮮。本文通過(guò)對USB HID設備的研究,提出自定義USB設計,電路簡(jiǎn)單,成本低廉,無(wú)需驅動(dòng)自動(dòng)識別,具有很高的實(shí)用價(jià)值和廣闊的應用前景。


上一頁(yè) 1 2 下一頁(yè)

評論


技術(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>