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

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

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

HID設(shè)備例程

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

引入

極海官網(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è)備:

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

當(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板上只有全速,所以這里我主要演示的也是全速。

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

二、描述符配置

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

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

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

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

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á)的信息,可以修改對(duì)于的字符串描述符,比如產(chǎn)品字符串描述符:

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

其他的比如報(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)容都在這里了。

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

審核編輯 :李倩

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

    關(guān)注

    60

    文章

    7848

    瀏覽量

    263309
  • HID
    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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    深度解析linux HID核心

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

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

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

    編譯ESP-IDF4.3下的例程esp_hid_device報(bào)錯(cuò)怎么回事?

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

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

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

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

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

    esp32s3想通過(guò)hid直接實(shí)現(xiàn)與電腦的數(shù)據(jù)交互,無(wú)法實(shí)現(xiàn)通信怎么解決?

    我想通過(guò)hid直接實(shí)現(xiàn)與電腦的數(shù)據(jù)交互,嘗試在tusb_hid例程上做修改,目前測(cè)試工具可以識(shí)別到鍵盤(pán),鼠標(biāo)外的第三個(gè)報(bào)告描述符,但是無(wú)法實(shí)現(xiàn)通信,想知道是在哪里配置出現(xiàn)了問(wèn)題。 下面是我在
    發(fā)表于 06-05 06:27

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

    stm32 hid例程,修改例程收到特定控制報(bào)文后,使用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ù)出錯(cuò)是為什么?

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

    如何用STM32的HID接USB鍵盤(pán)?

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

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

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

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

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

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

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

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

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

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

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

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

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