引入
極海官網(wǎng)上有F407系列的USB庫(kù),其名稱(chēng)為APM32F4xx_OTG_SDK,我下載的是V1.1版本。它里面除了USB的驅(qū)動(dòng)外,還包含了主機(jī)和設(shè)備的例程,例程有三類(lèi):鼠標(biāo)、虛擬串口和U盤(pán)。我給大家分享一下我使用的過(guò)程中的一些經(jīng)驗(yàn)。本次主要講HID設(shè)備例程,即鼠標(biāo)。
我使用的硬件是極海的APM32F407IG MINI Board,它提供了一個(gè)全速的USB口(Type B)。打開(kāi)Device_Examples目錄中的HID例程,成功編譯下載后,將USB線接上板子,電腦的設(shè)備管理器就出現(xiàn)下圖所示的設(shè)備:
當(dāng)出現(xiàn)了新的鼠標(biāo)設(shè)備,那就說(shuō)明這個(gè)例程的枚舉是沒(méi)問(wèn)題的。在例程中,鼠標(biāo)的左右移動(dòng)使用的是KEY1和KEY2控制。此外還有PC8和PC9兩個(gè)IO能夠控制光標(biāo)的上下移動(dòng)。當(dāng)鼠標(biāo)能夠自由控制的時(shí)候,說(shuō)明此例程已經(jīng)正常運(yùn)行了。
參數(shù)配置
一、工程不同目標(biāo)的選擇
如下圖所示,一個(gè)Keil工程中共有三個(gè)目標(biāo),USBD_HID_FS為全速,使用的引腳是PA11和PA12;USBD_HID_HS1為高速,使用的是ULPI接口,引腳配置的很多,因?yàn)橐饨痈咚貾HY;USBD_HID_HS2為高速,因?yàn)閮?nèi)嵌了高速PHY,所以通信引腳主要為PB14和PB15。我之前用它的時(shí)候,是直接從PB14和PB15引腳分別外接個(gè)0歐姆電阻,然后直接連USB口就可以用了,不過(guò)需要保證接線的質(zhì)量。
MINI板上只有全速,所以這里我主要演示的也是全速。
二、描述符配置
一般來(lái)說(shuō),如果只是想控制鼠標(biāo)的話,例程的描述符可以不作修改。下面簡(jiǎn)單介紹一下幾個(gè)描述符的修改方法。
如果想調(diào)整設(shè)備版本號(hào)或者廠商ID和產(chǎn)品ID,可以對(duì)設(shè)備描述符進(jìn)行修改,具體方法如下圖:
描述符中,內(nèi)容最多的當(dāng)屬配置描述符了,它還包含接口描述符、端點(diǎn)描述符等信息,具體用法如下圖:
若想修改字符串表達(dá)的信息,可以修改對(duì)于的字符串描述符,比如產(chǎn)品字符串描述符:
其他的比如報(bào)告描述符,因?yàn)槠圆恢v了,視情況再?zèng)Q定是否開(kāi)一篇專(zhuān)門(mén)講。
三、我們拿到例程之后,該怎么用?
例程是用來(lái)做演示的,主要是讓人知道這個(gè)驅(qū)動(dòng)該怎么用,整個(gè)SDK最重要的應(yīng)該是驅(qū)動(dòng)。我們需要理解好例程中哪些內(nèi)容是必須的,哪些是可以根據(jù)自己需要而修改或者刪去的。比如下圖就是例程的main函數(shù),除了中斷之外的運(yùn)行內(nèi)容都在這里了。
審核編輯 :李倩
-
usb
+關(guān)注
關(guān)注
60文章
7848瀏覽量
263309 -
HID
+關(guān)注
關(guān)注
2文章
128瀏覽量
46501
原文標(biāo)題:APM32芯得 EP.01 | USB_OTG_SDK的HID設(shè)備例程
文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論