引入
極海官網上有F407系列的USB庫,其名稱為APM32F4xx_OTG_SDK,我下載的是V1.1版本。它里面除了USB的驅動外,還包含了主機和設備的例程,例程有三類:鼠標、虛擬串口和U盤。我給大家分享一下我使用的過程中的一些經驗。本次主要講HID設備例程,即鼠標。
我使用的硬件是極海的APM32F407IG MINI Board,它提供了一個全速的USB口(Type B)。打開Device_Examples目錄中的HID例程,成功編譯下載后,將USB線接上板子,電腦的設備管理器就出現(xiàn)下圖所示的設備:

當出現(xiàn)了新的鼠標設備,那就說明這個例程的枚舉是沒問題的。在例程中,鼠標的左右移動使用的是KEY1和KEY2控制。此外還有PC8和PC9兩個IO能夠控制光標的上下移動。當鼠標能夠自由控制的時候,說明此例程已經正常運行了。
參數(shù)配置
一、工程不同目標的選擇
如下圖所示,一個Keil工程中共有三個目標,USBD_HID_FS為全速,使用的引腳是PA11和PA12;USBD_HID_HS1為高速,使用的是ULPI接口,引腳配置的很多,因為要外接高速PHY;USBD_HID_HS2為高速,因為內嵌了高速PHY,所以通信引腳主要為PB14和PB15。我之前用它的時候,是直接從PB14和PB15引腳分別外接個0歐姆電阻,然后直接連USB口就可以用了,不過需要保證接線的質量。
MINI板上只有全速,所以這里我主要演示的也是全速。

二、描述符配置
一般來說,如果只是想控制鼠標的話,例程的描述符可以不作修改。下面簡單介紹一下幾個描述符的修改方法。
如果想調整設備版本號或者廠商ID和產品ID,可以對設備描述符進行修改,具體方法如下圖:

描述符中,內容最多的當屬配置描述符了,它還包含接口描述符、端點描述符等信息,具體用法如下圖:




若想修改字符串表達的信息,可以修改對于的字符串描述符,比如產品字符串描述符:

其他的比如報告描述符,因為篇幅所以不講了,視情況再決定是否開一篇專門講。
三、我們拿到例程之后,該怎么用?
例程是用來做演示的,主要是讓人知道這個驅動該怎么用,整個SDK最重要的應該是驅動。我們需要理解好例程中哪些內容是必須的,哪些是可以根據(jù)自己需要而修改或者刪去的。比如下圖就是例程的main函數(shù),除了中斷之外的運行內容都在這里了。

審核編輯 :李倩
-
usb
+關注
關注
60文章
8331瀏覽量
280102 -
HID
+關注
關注
2文章
136瀏覽量
48350
原文標題:APM32芯得 EP.01 | USB_OTG_SDK的HID設備例程
文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網操作系統(tǒng)】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
如何對CYW20829設備進行HID測試?
如何通過 CYW89820 使用 HID 主機角色?
CYW920721M2EVK-02與cybt413061模塊,HID控件在某些安卓13設備中不起作用怎么解決?
CYBT-253059-EVAL上的BR/EDR HID連接提示驅動程序錯誤(代碼 10)怎么解決?
hid usb讀取不到擴展按鍵的問題
基于N32G457 USB HID驅動收發(fā)數(shù)據(jù)
HID免驅升級例程,基于nodejs編寫
CherryUSB-HID設備實踐 | 技術集結
國民技術N32G45x USB免驅動通訊例程
使用STM32G431做HID Keyboard與CDC符合設備,為什么做不了?
用hal庫通過usb做了一個hid復合設備,想問問怎么才能通過藍牙來實現(xiàn)hid設備?
使用官方評估板STM32H563ZI進行USB虛擬串口開發(fā),下載后電腦提示USB設備無法識別,設備描述符請求失敗怎么解決?
請問Bluenrg-ms是否支持hid復合設備?
STM32 HID和CDC組合設備無法枚舉成功是哪里出了問題?
linux內核中通用HID觸摸驅動

HID設備例程
評論