一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

CherryUSB-HID設(shè)備實(shí)踐 | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2025-04-27 17:46 ? 次閱讀

本文為大家?guī)?lái)CherryUSB-HID設(shè)備實(shí)踐,以MCXA156為例。開(kāi)發(fā)環(huán)境搭建請(qǐng)參考RT-Thread的快速入門,咱們就直入主題,折騰USB去。


CherryUSB的移植適配

據(jù)筆者理解,RT-Thread歷史上一共曾有過(guò)三個(gè)USB協(xié)議棧,原自帶Legacy USB協(xié)議棧、TinyUSB、CherryUSB,但在2024年已經(jīng)統(tǒng)一切換成CherryUSB了。CherryUSB的適配其實(shí)也有固定套路:第一步準(zhǔn)確找到USB對(duì)應(yīng)的IP,因?yàn)镃herryUSB的IP實(shí)現(xiàn)是作為一個(gè)port存在,復(fù)用即可。那么對(duì)于MCXA156 USB來(lái)說(shuō),它的IP應(yīng)該是kinetis一類;第二步實(shí)現(xiàn)usb_dc_low_level_init()與usb_dc_low_level_deinit()函數(shù),前者主要做USB相關(guān)的時(shí)鐘阿、中斷阿、甚至pinmux等一些初始化,而后者就是去初始化是前者的逆向操作,這一步可以觀察下倉(cāng)庫(kù)里的code是不是已經(jīng)有對(duì)應(yīng)的glue代碼,如果有修改即可,如果沒(méi)有添加下對(duì)應(yīng)代碼也不是難事。

對(duì)應(yīng)到MCXA156來(lái)說(shuō),如上文所述有版友已經(jīng)做完CherryUSB適配的修改,咱就搭個(gè)順風(fēng)車。


USB HID設(shè)備的實(shí)踐

版友做完CherryUSB適配修改后測(cè)試的是CDC ACM設(shè)備,那筆者就換USB HID設(shè)備玩玩,就模擬個(gè)USB HID鼠標(biāo)吧。

直接上代碼,修改bsp/nxp/mcx/mcxa/frdm-mcxa156/board/ports/cherryusb/cherryusb.c,加入以下代碼:

#ifdefRT_CHERRYUSB_DEVICE_TEMPLATE_HID_MOUSEexternvoidhid_mouse_init(uint8_tbusid,uintptr_treg_base);externvoidhid_mouse_test(uint8_tbusid);staticintrt_hw_mcxa156_cherryusb_hid_init(void){ hid_mouse_init(0,0x400A4000u); return0;}INIT_COMPONENT_EXPORT(rt_hw_mcxa156_cherryusb_hid_init);staticinthid_example(intargc,char**argv){ hid_mouse_test(0); return0;}MSH_CMD_EXPORT(hid_example, USB hid example);#endif

筆者覺(jué)得代碼挺簡(jiǎn)單的,調(diào)用hid_mouse_init()初始化一個(gè)USB HID鼠標(biāo),調(diào)用hid_mouse_test()做具體測(cè)試,其實(shí)就是鼠標(biāo)畫圓了可參見(jiàn)文末視頻,代碼基本是self-commented and explained,在CherryUSB的手冊(cè)里也有對(duì)應(yīng)的函數(shù)API介紹,如有疑問(wèn)可回帖垂詢。

然后在bsp/nxp/mcx/mcxa/frdm-mcxa156/目錄下運(yùn)行如下命令進(jìn)入menuconfig配置界面

scons--menuconfig

進(jìn)入menuconfig配置界面后,按如下步驟配置一下:

配置主界面進(jìn)RT-Thread Components

8d5ff1a6-234c-11f0-9434-92fbcf53809c.jpg

再進(jìn)Device Drivers

8d713e66-234c-11f0-9434-92fbcf53809c.jpg

最下面有Using USB with CherryUSB

8d877fdc-234c-11f0-9434-92fbcf53809c.jpg

進(jìn)入CherryUSB配置頁(yè)面,這里選中Enable usb device mode

8d9efdf6-234c-11f0-9434-92fbcf53809c.jpg

再Enter鍵進(jìn)入U(xiǎn)SB Device模式配置,這里選中FS,IP選kinetis_mcx, 并Enable usb hid device, usb device template選hid_mouse

8dae319a-234c-11f0-9434-92fbcf53809c.jpg

配置完畢,運(yùn)行如下命令編譯:

scons-j8

8dc6e6d6-234c-11f0-9434-92fbcf53809c.jpg

編譯成功,在當(dāng)前目錄下也會(huì)有rtthread.bin文件生成,用如下pyocd命令即可燒錄:

pyocdload -e sector -t mcxa156vll rtthread.bin

燒錄完畢后板子會(huì)自動(dòng)重啟,電腦系統(tǒng)中應(yīng)該會(huì)識(shí)別出一個(gè)新USB HID鼠標(biāo)設(shè)備,筆者電腦的linux系統(tǒng)下dmesg看到內(nèi)容如下圖所示:

8dd9206c-234c-11f0-9434-92fbcf53809c.jpg

在Finsh終端運(yùn)行hid_example命令,會(huì)看到鼠標(biāo)畫圓

8deb189e-234c-11f0-9434-92fbcf53809c.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • HID
    HID
    +關(guān)注

    關(guān)注

    2

    文章

    135

    瀏覽量

    47234
  • USB協(xié)議棧
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    7296
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是藍(lán)牙HID?應(yīng)用藍(lán)牙HID鼠標(biāo)操控小米2

    `什么是藍(lán)牙hid藍(lán)牙技術(shù)中的人性化接口設(shè)備(HID)應(yīng)用模式可以使人們無(wú)連線煩惱地控制他們的計(jì)算機(jī)、游戲操作桿、遠(yuǎn)程監(jiān)控設(shè)備等。 藍(lán)牙
    發(fā)表于 10-19 14:25

    CherryUSB軟件包不知道如何使用

    CherryUSB軟件包不知道如何使用。軟件在env下是在kconfig中設(shè)置并在組件中進(jìn)行設(shè)置即可使用。1 如果使用CherryUSB,原來(lái)的如何處理?2 是否支持分時(shí)的從設(shè)備切換到主機(jī)?3 主機(jī)讀寫U盤是否有demo?
    發(fā)表于 11-24 11:22

    使用CherryUSB報(bào)錯(cuò)缺少usb_config.h是何原因

    Hi:最近在使用CherryUSB的過(guò)程中,在F407 ATK menuconfig的online package中下CherryUSB,scons編譯成mdk5,mdk5編譯開(kāi)始報(bào)錯(cuò),開(kāi)始報(bào)錯(cuò)為
    發(fā)表于 01-29 15:45

    cherryusb hid 高速模式demo

    cherryUSB提供的demo,只有fs模式的demo,有沒(méi)有高速模式的demo,一次可以傳輸1024字節(jié)的那種
    發(fā)表于 11-24 23:27

    如何編寫應(yīng)用程序與USB HID設(shè)備通訊

    我們?nèi)绻雽?shí)現(xiàn)一個(gè)USB 的HID設(shè)備,不需要在Windows 下開(kāi)發(fā)自己的驅(qū)動(dòng)程序。HID不一定要是標(biāo)準(zhǔn)的外設(shè)類型,唯一的要求是交換的數(shù)據(jù)存儲(chǔ)在報(bào)文的結(jié)構(gòu)內(nèi),設(shè)備固件必須支持報(bào)文
    發(fā)表于 01-18 15:16 ?234次下載
    如何編寫應(yīng)用程序與USB <b class='flag-5'>HID</b><b class='flag-5'>設(shè)備</b>通訊

    基于Wave Panel的HID設(shè)備通訊接口設(shè)計(jì)

    本文以視頻編輯專用HID設(shè)備Wave Panel為基礎(chǔ),簡(jiǎn)要地介紹HID設(shè)備性能及Windows環(huán)境下HID通訊機(jī)制,并在此基礎(chǔ)上設(shè)計(jì)一個(gè)實(shí)
    發(fā)表于 07-12 15:48 ?1668次閱讀
    基于Wave Panel的<b class='flag-5'>HID</b><b class='flag-5'>設(shè)備</b>通訊接口設(shè)計(jì)

    USB HID設(shè)備應(yīng)用(進(jìn)階篇)

    Freescale的USB HID設(shè)備應(yīng)用(進(jìn)階篇)
    發(fā)表于 12-07 18:19 ?0次下載

    05 HID設(shè)備

    05 HID設(shè)備
    發(fā)表于 10-11 09:24 ?13次下載
    05 <b class='flag-5'>HID</b><b class='flag-5'>設(shè)備</b>

    基于USB總線接口芯片CH372的HID設(shè)備接口設(shè)計(jì)

    USB(Universal Serial Bus,通用串行總線)是計(jì)算機(jī)上的一種新型接口技術(shù),它使得計(jì)算機(jī)和外部設(shè)備的連接十分方便。HID 是Human InterfaceDvices 的縮寫,即
    發(fā)表于 04-10 08:31 ?3579次閱讀
    基于USB總線接口芯片CH372的<b class='flag-5'>HID</b><b class='flag-5'>設(shè)備</b>接口設(shè)計(jì)

    HID_CDC復(fù)合設(shè)備在WIN10的識(shí)別問(wèn)題

    HID_CDC復(fù)合設(shè)備在WIN10的識(shí)別問(wèn)題(電源技術(shù)發(fā)展綜述)-本文以STM32F405為例,詳細(xì)說(shuō)明上HID_CDC復(fù)合設(shè)備在WIN10
    發(fā)表于 08-04 18:23 ?20次下載
    <b class='flag-5'>HID</b>_CDC復(fù)合<b class='flag-5'>設(shè)備</b>在WIN10的識(shí)別問(wèn)題

    安卓設(shè)備的USB-HID通訊例程的開(kāi)發(fā)(2)

    安卓設(shè)備的USB-HID通訊例程的開(kāi)發(fā)(2)本博文系JGB聯(lián)合商務(wù)組的原創(chuàng)作品,引用請(qǐng)標(biāo)明出處分析和理解前面的 **USB-HID通訊例程的開(kāi)發(fā)(1)**博文中的主活動(dòng)源碼的核心方法
    發(fā)表于 12-28 19:40 ?10次下載
    安卓<b class='flag-5'>設(shè)備</b>的USB-<b class='flag-5'>HID</b>通訊例程的開(kāi)發(fā)(2)

    基于HAL庫(kù)的USB自定義HID設(shè)備實(shí)現(xiàn)

    基于HAL庫(kù)的USB自定義HID設(shè)備實(shí)現(xiàn)基于HAL庫(kù)的USB自定義HID設(shè)備實(shí)現(xiàn)準(zhǔn)備工作CubeMX配置代碼實(shí)現(xiàn)基于HAL庫(kù)的USB自定義HID
    發(fā)表于 12-28 20:04 ?13次下載
    基于HAL庫(kù)的USB自定義<b class='flag-5'>HID</b><b class='flag-5'>設(shè)備</b>實(shí)現(xiàn)

    HID設(shè)備例程

    我使用的硬件是極海的APM32F407IG MINI Board,它提供了一個(gè)全速的USB口(Type B)。打開(kāi)Device_Examples目錄中的HID例程,成功編譯下載后,將USB線接上板子,電腦的設(shè)備管理器就出現(xiàn)下圖所示的設(shè)備
    的頭像 發(fā)表于 06-22 10:35 ?1772次閱讀

    HID協(xié)議是什么意思

    對(duì)于 USB 接口的 HID 設(shè)備,有一套協(xié)議。 1.1 描述符 HID 設(shè)備有如下描述符: HID 設(shè)
    的頭像 發(fā)表于 07-17 17:41 ?7356次閱讀
    <b class='flag-5'>HID</b>協(xié)議是什么意思

    技術(shù)專欄】泰凌微電子USB HID 用戶自定義設(shè)備應(yīng)用及調(diào)試

    本文主要簡(jiǎn)單介紹USB HID Vendor Defined設(shè)備的應(yīng)用和調(diào)試方法,結(jié)合Telink 8355 Dongle做簡(jiǎn)要說(shuō)明。 1 USB HID Vendor Defined 設(shè)備
    的頭像 發(fā)表于 07-19 08:40 ?1634次閱讀
    【<b class='flag-5'>技術(shù)</b>專欄】泰凌微電子USB <b class='flag-5'>HID</b> 用戶自定義<b class='flag-5'>設(shè)備</b>應(yīng)用及調(diào)試