在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

RT-thread STM32F103 USB虛擬串口配置步驟

冬至子 ? 來源:浪花雷雨 ? 作者:浪花雷雨 ? 2023-10-27 12:32 ? 次閱讀

RT-thread STM32F103 USB虛擬串口配置

一、使用的環境
硬件環境:
芯片STM32F103VET6,外部晶振8M,USB電路接口如下圖,USB做從設備時,D+引腳要上拉到高電平,這里控制PA8引腳輸出低電平即可使能D+為高電平。

1.jpg

軟件環境:
代碼編輯和編譯軟件:RT-Thread Studio 1.1.2;RTOS:rt-thread4.0.2;Windows的串口驅動:VCP_V1.4.0_Setup.exe

二、移植修改過程
(一)基礎工程的創建
1.項目工程創建
選擇RT-Thread Studio的文件->新建->RT-Thread項目
1.jpg

2.選擇保存的目錄,選擇使用的芯片,選擇串口及引腳,選擇下載工具
1.jpg

3.生成的工程使用內部時鐘(在drv_clk.c文件中),往串口輸出信息,這個工程可以直接編譯下載到芯片中校驗工程的正確性。
1.jpg

(二)使用CubeMX生成時鐘配置和外設配置
1.在CubeMX中選擇使用的STM32F103VE芯片創建工程
1.jpg

2.選擇RCC項為外部高速時鐘為晶振;選擇USB項打開使能,選擇USB的IP包;設置時鐘頻率,主時鐘設置為73Mhz,USB時鐘設置為48Mhz,cubeMX自動計算分頻系數。
1.jpg

2.jpg

3.jpg

3.設置工程選項,生成工程代碼。
1.jpg

(三)RT-thread工程修改
1.時鐘配置修改
從CubeMX工程的main.c文件中拷貝SystemClock_Config函數的內容覆蓋RT-Thred studio工程drv_clk.c文件中的SystemClock_Config函數中的內容,讓時鐘能使用外部晶振。
1.jpg

2.進行RTOS內核配置,保存。
1.jpg

3.因為STM32F103的時鐘要單獨打開,在drv_clk.c文件中的SystemClock_Config函數中增加USB的時鐘使能,在stm32f1xx_hal_conf.h打開HAL庫的USB相關代碼編譯選項。
1.jpg

2.jpg

4.配置驅動
打開rtconfig.h文件,在USB驅動配置的地方增加USB設備的BSP定義選項和D+上拉電平控制引腳(從drv_gpio.c中按照對應的管腳查到對應的控制編號,如果D+已經接到搞電平可以不用添加這個控制),修改USB_VENDOR_ID 為0x0483,修改USB_PRODUCT_ID為 0x5740(需改這兩項才可以使用ST提供的Windows虛擬串口驅動,否則設備被識別為其他設備)
1.jpg

2.jpg

3.jpg

5.main.c函數修改
/ 用于接收消息的信號量 /
static struct rt_semaphore rx_sem;
static rt_device_t serial;

/ 接收數據回調函數 /
static rt_err_t uart_input(rt_device_t dev, rt_size_t size)
{
/ 串口接收到數據后產生中斷,調用此回調函數,然后發送接收信號量 /
rt_sem_release(&rx_sem);

return RT_EOK;
}
static void serial_thread_entry(void parameter)
{
char ch;
while (1)
{
/ 從串口讀取一個字節的數據,沒有讀取到則等待接收信號量 /
while (rt_device_read(serial, -1, &ch, 1) != 1)
{
/ 阻塞等待接收信號量,等到信號量后再次讀取數據 /
rt_sem_take(&rx_sem, RT_WAITING_FOREVER);
}
/ 讀取到的數據通過串口錯位輸出 */
rt_device_write(serial, 0, &ch, 1);
}
}
int main(void)
{
int count = 1;
int err = 0;
rt_thread_t tid;
char buf[] = “hello rt-thread!rn”;
serial = rt_device_find(“vcom”);
if (!serial)
{
rt_kprintf(“find failed!n”);
return RT_ERROR;
}
err = rt_device_init(serial);
if (!serial)
{
rt_kprintf(“find failed!n”);
return RT_ERROR;
}
err = rt_device_open(serial, RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX);

//初始化信號量
rt_sem_init(&rx_sem, "rx_sem", 0, RT_IPC_FLAG_FIFO);
// 設置接收回調函數
rt_device_set_rx_indicate(serial, uart_input);
rt_thread_t thread = rt_thread_create("serial", serial_thread_entry, RT_NULL, 1024, 25, 10);
if (thread != RT_NULL)
{
rt_thread_startup(thread);
}
while (count++)
{
rt_device_write(serial, 0, buf, rt_strlen(buf));
LOG_D("Hello RT-Thread!");
rt_thread_mdelay(1000);
}
return RT_EOK;
}
5.測試收發,串口工具要打開DTR控制
1.jpg

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

    關注

    9

    文章

    705

    瀏覽量

    56697
  • RTOS
    +關注

    關注

    24

    文章

    844

    瀏覽量

    120830
  • 虛擬串口
    +關注

    關注

    3

    文章

    63

    瀏覽量

    14150
  • RT-Thread
    +關注

    關注

    32

    文章

    1372

    瀏覽量

    41563
  • STM32F103VET6
    +關注

    關注

    12

    文章

    18

    瀏覽量

    15947
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    如何將RT-Thread系統移植到STM32f103標準庫上呢

    如何將RT-Thread系統移植到STM32f103標準庫上呢?有哪些操作步驟
    發表于 12-15 06:51

    RT-Thread實現USB虛擬串口的過程記錄

    記錄——基于 RT-Thread 實現 USB 虛擬串口記錄一下我在正點原子 F429 阿波羅開發板上實現
    發表于 01-26 06:31

    RT-thread STM32F103 USB虛擬串口移植修改過程

    工程drv_clk.c文件中的SystemClock_Config函數中的內容,讓時鐘能使用外部晶振。2.進行RTOS內核配置,保存。3.因為STM32F103的時鐘要單獨打開,在drv_clk.c文件
    發表于 08-01 15:41

    STM32F103RT-Thread怎樣設置串口1.5 個停止位呢?

    STM32F103RT-Thread怎樣設置串口1.5 個停止位呢?求大神解答
    發表于 04-17 15:52

    RT-Thread STM32 配置指南

    105,STM32F107 則叫做 CL 系列,所以當您使用 RT-Thread 時,請先確定您使用的芯片型號,在軟件的配置上主要是兩 個地方(在工程的選項中): 在上圖中選擇左邊的芯片型號,例如
    發表于 09-12 15:13 ?24次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>STM32</b> <b class='flag-5'>配置</b>指南

    記錄——基于 RT-Thread 實現 USB 虛擬串口

    記錄——基于 RT-Thread 實現 USB 虛擬串口記錄一下我在正點原子 F429 阿波羅開發板上實現
    發表于 12-02 17:21 ?6次下載
    記錄——基于 <b class='flag-5'>RT-Thread</b> 實現 <b class='flag-5'>USB</b> <b class='flag-5'>虛擬</b><b class='flag-5'>串口</b>

    RT-Thread系統移植到STM32f103

    RT-Thread系統移植到STM32f103
    發表于 12-09 12:51 ?26次下載
    <b class='flag-5'>RT-Thread</b>系統移植到<b class='flag-5'>STM32f103</b>

    RT-Thread STM32 配置系統時鐘(使用外部晶振)

    RT-Thread STM32 配置系統時鐘開發環境芯片:STM32F103RCT6RT-Thread Studio: V1.0.6(現在已經更新到1.1.3,由于本人使用RTT開發已
    發表于 12-14 18:45 ?15次下載
    <b class='flag-5'>RT-Thread</b> <b class='flag-5'>STM32</b> <b class='flag-5'>配置</b>系統時鐘(使用外部晶振)

    筆記:基于RT-thread初步了解rtos,利用Keil 模擬器 STM32F103 上手指南。

    文章參考:RT-Thread 文檔中心前期準備MDK-ARM 5.24 點擊下載STM32F103 軟件仿真,STM32F103 pack 文件 點擊下載RT-Thread Simul
    發表于 01-12 17:38 ?6次下載
    筆記:基于<b class='flag-5'>RT-thread</b>初步了解rtos,利用Keil 模擬器 <b class='flag-5'>STM32F103</b> 上手指南。

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個 stm32f103 的基礎工程作為示例進行講解。 RT-Thread Nano 已集成在 Keil MD...
    發表于 01-26 17:04 ?17次下載
    基于 Keil MDK 移植 <b class='flag-5'>RT-Thread</b> Nano

    基于 RT-ThreadSTM32 上實現 USB 虛擬串口

    之前由于工作需要,基于 RT-ThreadSTM32 上實現了 USB 虛擬串口。為了方便大家,我在這里把在正點原子
    發表于 02-10 10:01 ?4次下載
    基于 <b class='flag-5'>RT-Thread</b> 在 <b class='flag-5'>STM32</b> 上實現 <b class='flag-5'>USB</b> <b class='flag-5'>虛擬</b><b class='flag-5'>串口</b>

    基于 RT-ThreadSTM32 上實現 USB 虛擬串口

    之前由于工作需要,基于 RT-ThreadSTM32 上實現了 USB 虛擬串口。為了方便大家,我在這里把在正點原子
    發表于 02-10 10:28 ?9次下載
    基于 <b class='flag-5'>RT-Thread</b> 在 <b class='flag-5'>STM32</b> 上實現 <b class='flag-5'>USB</b> <b class='flag-5'>虛擬</b><b class='flag-5'>串口</b>

    RT-Thread文檔_Keil 模擬器 STM32F103 上手指南

    RT-Thread文檔_Keil 模擬器 STM32F103 上手指南
    發表于 02-22 18:22 ?4次下載
    <b class='flag-5'>RT-Thread</b>文檔_Keil 模擬器 <b class='flag-5'>STM32F103</b> 上手指南

    RT-Thread文檔_野火霸道 STM32F103 上手指南

    RT-Thread文檔_野火霸道 STM32F103 上手指南
    發表于 02-22 18:23 ?2次下載
    <b class='flag-5'>RT-Thread</b>文檔_野火霸道 <b class='flag-5'>STM32F103</b> 上手指南

    RT-Thread文檔_正點原子 nano STM32F103 上手指南

    RT-Thread文檔_正點原子 nano STM32F103 上手指南
    發表于 02-22 18:24 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_正點原子 nano <b class='flag-5'>STM32F103</b> 上手指南
    主站蜘蛛池模板: 日韩美a一级毛片 | 日韩黄a级成人毛片 | 国产一级特黄aa级特黄裸毛片 | 日本特黄特色aaa大片免费欧 | 免费一级大片 | 亚洲酒色1314狠狠做 | 女人张开腿让男人捅爽 | 久久精品网站免费观看 | 美国69bj| 性色在线观看 | 黄色拍拍拍 | 四虎在线永久免费视频网站 | 青草青青视频 | 绝色村妇的泛滥春情 | 四虎永久影院永久影库 | 欧美极品xxxxⅹ另类 | 黄色网址视频在线观看 | 狠狠色依依成人婷婷九月 | 久久久久久久国产 | 日韩三 | 久久五月天婷婷 | 国产亚洲人成网站天堂岛 | 久久精品国产福利 | 四虎影视永久在线 yin56xyz | 午夜小影院 | 亚洲国产婷婷香蕉久久久久久 | 六月天色婷婷 | 天天干天日 | 国产精品推荐天天看天天爽 | 一级a级国产不卡毛片 | 国产福利在线观看你懂的 | 夜夜操狠狠操 | 成人伊在线影院 | 新天堂网| 91网站免费在线观看 | 午夜神马福利影院 | 酒色网址| 天天色天天摸 | 91深夜福利 | 日本加勒比在线精品视频 | 婷婷色站|