TinyUSB 是一個(gè)用于嵌入式系統(tǒng)的開源跨平臺(tái) USB Host/Device 協(xié)議棧,其為了內(nèi)存安全而設(shè)計(jì),沒有動(dòng)態(tài)分配,同時(shí)也是線程安全的,所有中斷事件都會(huì)被推遲,然后在非 ISR 任務(wù)函數(shù)中處理,支持多種 MCU。目前 TinyUSB 的源代碼托管在 GitHub 上。
在社區(qū)成員譚豐偉的努力下,通過對(duì) TinyUSB 上游倉(cāng)庫(kù)進(jìn)行 移植,目前已成為 RT-Thread 軟件包。
支持情況
目前軟件包僅支持 USB Device 協(xié)議棧。同時(shí)希望能有更多的社區(qū)伙伴能參與到 MCU 的適配中。
設(shè)備類
CDC
MSC
HID
MCU
STM32: F0, F1, F2, F3, F4, F7, H7, L0, L1, L4
NRF52840
HPM6000 系列
開始使用
啟用軟件包
1、ENV軟件包在 ENV 包管理器中的路徑為:
在 Keil MDK 中使用時(shí),請(qǐng)選擇 ARM Clang 編譯器,或手動(dòng)在編譯選項(xiàng)中選中 GNU Extensions。
2、RT-Thread Studio在 RT-Thread Studio 中,搜索 TinyUSB 即可將軟件包添加至工程。
軟件包配置
這里我們使用 CDC 虛擬串口,以及軟件包提供的示例來進(jìn)行演示。首先在配置中啟用 USB 設(shè)備,然后依次選中 CDC 和 CDC 設(shè)備的示例,保存關(guān)閉設(shè)置界面,軟件包便會(huì)自動(dòng)下載添加到項(xiàng)目中。
在編譯完成后,將程序燒錄至芯片中。將 USB OTG 口連接上電腦后,我們可以在設(shè)備管理器中看到對(duì)應(yīng)的端口。
在 Putty 或 MobaXterm 中分別打開 FinSH 和 CDC 對(duì)應(yīng)的端口,在控制臺(tái)中輸入 cdc_example ,即可在 CDC 的端口中輸入任意字符(不超過 32 個(gè)字符),按下回車后,會(huì)顯示剛剛輸入的字符。
用戶手冊(cè)
用戶手冊(cè)已經(jīng)在 RT-Thread 文檔中心上線(鏈接請(qǐng)復(fù)制至外部瀏覽器打開):https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/packages-manual/tinyusb-docs/introduction
問題反饋
Issue: RT-Thread-packages/tinyusb
-
usb
+關(guān)注
關(guān)注
60文章
7981瀏覽量
266108 -
軟件包
+關(guān)注
關(guān)注
0文章
104瀏覽量
11657 -
RT-Thread
+關(guān)注
關(guān)注
31文章
1305瀏覽量
40388
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
ESP32S3 USB CDC TinyUsb TX卡死的原因?怎么解決?
menuconfig的tinyusb msc打開編譯報(bào)錯(cuò)是什么原因?qū)е碌模?/a>
如何在ESP32S3上使用TinyUSB,配置為Vendor Class設(shè)備?
在STM32F103VB上使用tinyusb完成配置之后沒有反應(yīng)是怎么回事
stm32103VB tinyusb使用異常,無法識(shí)別描述符是為什么?
如何使用計(jì)算機(jī)上的本地倉(cāng)庫(kù)以及GitHub上托管的遠(yuǎn)程倉(cāng)庫(kù)呢
esp32如何直接通過lvgl主倉(cāng)庫(kù)進(jìn)行使用的?
如何使用Class軟件進(jìn)行倉(cāng)庫(kù)規(guī)劃仿真研究

基于開源GSYRickText進(jìn)行的OHOS化移植和開發(fā)
wms倉(cāng)庫(kù)管理對(duì)企業(yè)的重要性
TinyUSB基本介紹和移植例程

基于MM32F0163D7P的USB接口TinyUSB應(yīng)用:移植和新增設(shè)備(二)

Vision-Board 使用TinyUSB驅(qū)動(dòng)Xbox游戲手柄

評(píng)論