0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

HID設(shè)備例程

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:21ic論壇 ? 作者:21ic論壇 ? 2022-06-22 10:35 ? 次閱讀

引入

極海官網(wǎng)上有F407系列的USB庫,其名稱為APM32F4xx_OTG_SDK,我下載的是V1.1版本。它里面除了USB的驅(qū)動外,還包含了主機(jī)和設(shè)備的例程,例程有三類:鼠標(biāo)、虛擬串口和U盤。我給大家分享一下我使用的過程中的一些經(jīng)驗。本次主要講HID設(shè)備例程,即鼠標(biāo)。

我使用的硬件是極海的APM32F407IG MINI Board,它提供了一個全速的USB口(Type B)。打開Device_Examples目錄中的HID例程,成功編譯下載后,將USB線接上板子,電腦的設(shè)備管理器就出現(xiàn)下圖所示的設(shè)備:

11a5baa6-f158-11ec-ba43-dac502259ad0.png

當(dāng)出現(xiàn)了新的鼠標(biāo)設(shè)備,那就說明這個例程的枚舉是沒問題的。在例程中,鼠標(biāo)的左右移動使用的是KEY1和KEY2控制。此外還有PC8和PC9兩個IO能夠控制光標(biāo)的上下移動。當(dāng)鼠標(biāo)能夠自由控制的時候,說明此例程已經(jīng)正常運行了。

參數(shù)配置

一、工程不同目標(biāo)的選擇

如下圖所示,一個Keil工程中共有三個目標(biāo),USBD_HID_FS為全速,使用的引腳是PA11和PA12;USBD_HID_HS1為高速,使用的是ULPI接口,引腳配置的很多,因為要外接高速PHY;USBD_HID_HS2為高速,因為內(nèi)嵌了高速PHY,所以通信引腳主要為PB14和PB15。我之前用它的時候,是直接從PB14和PB15引腳分別外接個0歐姆電阻,然后直接連USB口就可以用了,不過需要保證接線的質(zhì)量。

MINI板上只有全速,所以這里我主要演示的也是全速。

11be4b2a-f158-11ec-ba43-dac502259ad0.png

二、描述符配置

一般來說,如果只是想控制鼠標(biāo)的話,例程的描述符可以不作修改。下面簡單介紹一下幾個描述符的修改方法。

如果想調(diào)整設(shè)備版本號或者廠商ID和產(chǎn)品ID,可以對設(shè)備描述符進(jìn)行修改,具體方法如下圖:

11cf3b74-f158-11ec-ba43-dac502259ad0.png

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

11f47678-f158-11ec-ba43-dac502259ad0.png

121cc5ba-f158-11ec-ba43-dac502259ad0.png

122defa2-f158-11ec-ba43-dac502259ad0.png

123d2396-f158-11ec-ba43-dac502259ad0.png

若想修改字符串表達(dá)的信息,可以修改對于的字符串描述符,比如產(chǎn)品字符串描述符:

124e7bfa-f158-11ec-ba43-dac502259ad0.png

其他的比如報告描述符,因為篇幅所以不講了,視情況再決定是否開一篇專門講。

三、我們拿到例程之后,該怎么用?

例程是用來做演示的,主要是讓人知道這個驅(qū)動該怎么用,整個SDK最重要的應(yīng)該是驅(qū)動。我們需要理解好例程中哪些內(nèi)容是必須的,哪些是可以根據(jù)自己需要而修改或者刪去的。比如下圖就是例程的main函數(shù),除了中斷之外的運行內(nèi)容都在這里了。

12689634-f158-11ec-ba43-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7879

    瀏覽量

    263732
  • HID
    HID
    +關(guān)注

    關(guān)注

    2

    文章

    129

    瀏覽量

    46539

原文標(biāo)題:APM32芯得 EP.01 | USB_OTG_SDK的HID設(shè)備例程

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    linux內(nèi)核中通用HID觸摸驅(qū)動

    在linux內(nèi)核中,為HID觸摸面板實現(xiàn)了一個通用的驅(qū)動程序,位于/drivers/hid/hid-multitouch.c文件中。hid觸摸驅(qū)動是以struct
    的頭像 發(fā)表于 10-29 10:55 ?161次閱讀
    linux內(nèi)核中通用<b class='flag-5'>HID</b>觸摸驅(qū)動

    深度解析linux HID核心

    在linux內(nèi)核中,HID核心是完成HID功能的關(guān)鍵組件,如果內(nèi)核支持HID,在啟動過程中,則會對HID進(jìn)行初始化,完成該操作的函數(shù)是hid
    的頭像 發(fā)表于 09-29 17:04 ?319次閱讀
    深度解析linux <b class='flag-5'>HID</b>核心

    ESP32-C3下載ble_hid_device_demo例程后自帶的USB串口無法識別怎么處理?

    當(dāng)我在我的板子上下載了ble_hid_device_demo例程后,USB-SERIAL-JTAG口連接到電腦后不能被識別。 設(shè)備管理器中顯示:未知USB設(shè)備
    發(fā)表于 06-18 06:39

    編譯ESP-IDF4.3下的例程esp_hid_device報錯怎么回事?

    我在編譯ESP-IDF4.3目錄下的例程:esp_hid_device時報錯了。
    發(fā)表于 06-18 06:04

    usb_hid_host例程鍵盤多媒體鍵無響應(yīng)是哪里出了問題?

    今天用github上最新idf里的USB HID HOST例程嘗試了一下,連接鍵盤以后普通按鍵都可以正常工作,但是使用鍵盤上的多媒體鍵時沒有任何反應(yīng),之前沒有玩過USB HID,不知道是什么問題,望賜教。
    發(fā)表于 06-12 06:43

    ESP32有無連接接收BLE HID設(shè)備的可能?

    利用相似例程gatt_security_client嘗試連接ble hid設(shè)備,就是個手機(jī)的藍(lán)牙翻頁器,能發(fā)現(xiàn)并打開ESP_GATT_UUID_HID_SVC服務(wù),搜索
    發(fā)表于 06-06 07:43

    stm32 hid設(shè)備不能使用endp0發(fā)送數(shù)據(jù)怎么解決?

    stm32 hid例程,修改例程收到特定控制報文后,使用endp0發(fā)送數(shù)據(jù)到主機(jī),能進(jìn)入發(fā)送函數(shù)但是主機(jī)收不到發(fā)送數(shù)據(jù),發(fā)送函數(shù)如下,求指導(dǎo) static void UsbSendData
    發(fā)表于 05-10 08:14

    用USB鼠標(biāo)例程修改做USB HID通訊,抓取數(shù)據(jù)出錯是為什么?

    用usb鼠標(biāo)的那個例程改做USB HID通訊,發(fā)送8個字節(jié),但是用bus hound抓取,8個字節(jié)是分為8個包上來的,有人遇到過類似的問題么?
    發(fā)表于 05-07 06:14

    如何用STM32的HID接USB鍵盤?

    有高手用STM32的HID接過USB鍵盤么,或者有什么例程、開發(fā)板或書籍有這方面的參考?
    發(fā)表于 04-28 08:39

    ST-usb-host-hid庫如何解決usb掃碼槍這類的usb-hid-keyboard設(shè)備

    用cube生成的usb-host-hid調(diào)試掃碼槍的時候只能支持小部分的usb掃碼槍,有好幾種掃碼槍的現(xiàn)象是:枚舉成功了,但是在獲取設(shè)備信息:USBH_HID
    發(fā)表于 04-17 06:49

    將STM32L4系列開發(fā)板設(shè)置為HID設(shè)備,為什么不顯示HID設(shè)備?

    想將STM32L4系列開發(fā)板設(shè)置為HID設(shè)備,使用cubeMX進(jìn)行設(shè)計。按照以下步驟設(shè)置好后,燒錄程式后,顯示“大容量存儲設(shè)備”,而不顯示HID設(shè)備
    發(fā)表于 04-09 06:20

    通過stm32f429 usb host hid發(fā)送命令控制hid設(shè)備,能枚舉不能發(fā)送數(shù)據(jù)的原因?

    大家好,這個問題一直困擾了我好久,我的下位機(jī)是hid設(shè)備,已經(jīng)做好無法改變,我想通過stm32f429 usb host hid發(fā)送命令控制它,枚舉都成功了,就是不能發(fā)送數(shù)據(jù),我不知道什么原因,有什么好的建議嗎?我用的是USBH
    發(fā)表于 03-28 09:14

    求助,關(guān)于USB復(fù)合設(shè)備HID+CDC串口問題求解

    分別寫了CustomHID的鍵鼠代碼、CDC代碼測試均無問題,整合到一起后,插上電腦有時識別串口,有時識別HID,最終過不了幾秒HID設(shè)備掛掉報代碼10,雖然串口顯示設(shè)備正常運行,但
    發(fā)表于 03-07 06:11

    如何在SlaveFifoSync例程中添加HID設(shè)備枚舉?

    您好,我使用了SlaveFifoSync的32bit模式例程,現(xiàn)在我想在其中添加一個HID設(shè)備(鼠標(biāo)),程序見附件,我參照了Can EZ-USB FX3 enumerate serial
    發(fā)表于 02-28 06:31

    什么是通用HID燈鎮(zhèn)流器

    熒光燈鎮(zhèn)流器中有一種典型的簡單高頻驅(qū)動方法,但是具有高弧光管壓力的 HID 燈存在聲共振現(xiàn)象(*) 的問題。為了避免這個問題,HID 燈需要以低于 1kHz 的低頻或直流驅(qū)動。
    發(fā)表于 02-02 17:05 ?503次閱讀
    什么是通用<b class='flag-5'>HID</b>燈鎮(zhèn)流器