国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

CherryUSB-HID設備實踐 | 技術集結

RT-Thread官方賬號 ? 2025-04-27 17:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文為大家帶來CherryUSB-HID設備實踐,以MCXA156為例。開發環境搭建請參考RT-Thread的快速入門,咱們就直入主題,折騰USB去。


CherryUSB的移植適配

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

對應到MCXA156來說,如上文所述有版友已經做完CherryUSB適配的修改,咱就搭個順風車。


USB HID設備的實踐

版友做完CherryUSB適配修改后測試的是CDC ACM設備,那筆者就換USB HID設備玩玩,就模擬個USB HID鼠標吧。

直接上代碼,修改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

筆者覺得代碼挺簡單的,調用hid_mouse_init()初始化一個USB HID鼠標,調用hid_mouse_test()做具體測試,其實就是鼠標畫圓了可參見文末視頻,代碼基本是self-commented and explained,在CherryUSB的手冊里也有對應的函數API介紹,如有疑問可回帖垂詢。

然后在bsp/nxp/mcx/mcxa/frdm-mcxa156/目錄下運行如下命令進入menuconfig配置界面

scons--menuconfig

進入menuconfig配置界面后,按如下步驟配置一下:

配置主界面進RT-Thread Components

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

再進Device Drivers

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

最下面有Using USB with CherryUSB

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

進入CherryUSB配置頁面,這里選中Enable usb device mode

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

再Enter鍵進入USB Device模式配置,這里選中FS,IP選kinetis_mcx, 并Enable usb hid device, usb device template選hid_mouse

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

配置完畢,運行如下命令編譯:

scons-j8

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

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

pyocdload -e sector -t mcxa156vll rtthread.bin

燒錄完畢后板子會自動重啟,電腦系統中應該會識別出一個新USB HID鼠標設備,筆者電腦的linux系統下dmesg看到內容如下圖所示:

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

在Finsh終端運行hid_example命令,會看到鼠標畫圓

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • HID
    HID
    +關注

    關注

    2

    文章

    137

    瀏覽量

    48553
  • USB協議棧
    +關注

    關注

    0

    文章

    3

    瀏覽量

    7348
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    讓開發板暢游網絡:RT-Thread CherryUSB 驅動 RNDIS 模塊詳解 | 技術集結

    本文通過在RT-Thread操作系統上,使用CherryUSB軟件包作為USBHost協議棧,驅動AIR780E4GCat.1模塊的RNDIS功能,并成功接入lwIP網絡協議棧,最終在開發板上實現了
    的頭像 發表于 07-02 17:04 ?2851次閱讀
    讓開發板暢游網絡:RT-Thread <b class='flag-5'>CherryUSB</b> 驅動 RNDIS 模塊詳解 | <b class='flag-5'>技術</b><b class='flag-5'>集結</b>

    CherryUSB Host必須要DMA而Device就可以選擇是否使用DMA?

    此一問。 圖為CherryUSB設備初始化中對于DMA是否開啟的配置 圖為CherryUSB主機初始化中配置,是必須開啟DMA的
    發表于 09-10 06:58

    CherryUSB和RTThread自帶的USB如何合理使用?

    RTThread自帶了很多的USB的功能,但是我在想如果使用CherryUSB是否比使用 自帶的更好。 所以我的操作一開始是這樣的 1、RTThread使能自帶的USB,使能了大容量設備MSC,測試正常
    發表于 10-13 07:52

    CherryUSB軟件包不知道如何使用

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

    cherryusb hid 高速模式demo

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

    如何編寫應用程序與USB HID設備通訊

    我們如果想實現一個USB 的HID設備,不需要在Windows 下開發自己的驅動程序。HID不一定要是標準的外設類型,唯一的要求是交換的數據存儲在報文的結構內,設備固件必須支持報文
    發表于 01-18 15:16 ?234次下載
    如何編寫應用程序與USB <b class='flag-5'>HID</b><b class='flag-5'>設備</b>通訊

    基于Wave Panel的HID設備通訊接口設計

    本文以視頻編輯專用HID設備Wave Panel為基礎,簡要地介紹HID設備性能及Windows環境下HID通訊機制,并在此基礎上設計一個實
    發表于 07-12 15:48 ?1846次閱讀
    基于Wave Panel的<b class='flag-5'>HID</b><b class='flag-5'>設備</b>通訊接口設計

    USB HID設備應用(進階篇)

    Freescale的USB HID設備應用(進階篇)
    發表于 12-07 18:19 ?0次下載

    05 HID設備

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

    基于USB總線接口芯片CH372的HID設備接口設計

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

    安卓設備的USB-HID通訊例程的開發(2)

    安卓設備的USB-HID通訊例程的開發(2)本博文系JGB聯合商務組的原創作品,引用請標明出處分析和理解前面的 **USB-HID通訊例程的開發(1)**博文中的主活動源碼的核心方法
    發表于 12-28 19:40 ?10次下載
    安卓<b class='flag-5'>設備</b>的USB-<b class='flag-5'>HID</b>通訊例程的開發(2)

    基于HAL庫的USB自定義HID設備實現

    基于HAL庫的USB自定義HID設備實現基于HAL庫的USB自定義HID設備實現準備工作CubeMX配置代碼實現基于HAL庫的USB自定義HID
    發表于 12-28 20:04 ?13次下載
    基于HAL庫的USB自定義<b class='flag-5'>HID</b><b class='flag-5'>設備</b>實現

    HID設備例程

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

    HID協議是什么意思

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

    技術專欄】泰凌微電子USB HID 用戶自定義設備應用及調試

    本文主要簡單介紹USB HID Vendor Defined設備的應用和調試方法,結合Telink 8355 Dongle做簡要說明。 1 USB HID Vendor Defined 設備
    的頭像 發表于 07-19 08:40 ?2510次閱讀
    【<b class='flag-5'>技術</b>專欄】泰凌微電子USB <b class='flag-5'>HID</b> 用戶自定義<b class='flag-5'>設備</b>應用及調試