在线观看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

    文章

    703

    瀏覽量

    55850
  • RTOS
    +關注

    關注

    22

    文章

    820

    瀏覽量

    119915
  • 虛擬串口
    +關注

    關注

    3

    文章

    62

    瀏覽量

    13945
  • RT-Thread
    +關注

    關注

    31

    文章

    1306

    瀏覽量

    40423
  • STM32F103VET6
    +關注

    關注

    12

    文章

    18

    瀏覽量

    15678
收藏 人收藏

    評論

    相關推薦

    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 Studio 實現USB虛擬串口/STM32開發板

    有限制,最快在20Hz左右,因此想到USB虛擬串口功能。一、在RT-Thread Studio軟件中打開CubeMx使能單片機的USB注意
    發表于 12-08 15:21 ?6次下載
    <b class='flag-5'>RT-Thread</b> Studio 實現<b class='flag-5'>USB</b><b class='flag-5'>虛擬</b><b class='flag-5'>串口</b>/<b class='flag-5'>STM32</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 ?14次下載
    <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 ?16次下載
    基于 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 ?1次下載
    <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> 上手指南
    主站蜘蛛池模板: 欧美一区二区三区在线观看免费 | 888米奇在线视频四色 | 天堂tv亚洲tv日本tv欧美人tv | 2021最新久久久视精品爱 | 黄色大片视频在线观看 | 成人在线91| av2014天堂网 | 久青草国产高清在线视频 | 午夜看片免费 | 婷婷五月在线视频 | 18岁女人毛片 | 狠狠操夜夜爱 | 欧美天天爽 | 黄色地址 | 亚洲激情都市 | 性无码专区无码 | 成人欧美一区二区三区白人 | 亚洲视频 欧美视频 | 午夜久久免费视频 | 一级视频片 | 亚洲成人毛片 | 欧美视频图片 | 欧美一区二区三区精品 | 国产色网站 | 老司机成人精品视频lsj | 成人免费黄色网 | 日本久操视频 | 大胆国模一区二区三区伊人 | 亚洲免费区 | 成人免费午间影院在线观看 | 亚洲视频在线观看一区 | 337p亚洲精品色噜噜狠狠 | 一级毛片a| 国产成人免费无庶挡视频 | 天天做天天爱夜夜爽毛片毛片 | 视频一区二区三区在线观看 | 国产精品久久久久久一级毛片 | 奇米一区二区三区四区久久 | 亚洲网站一区 | 黄色小视频免费看 | 1024国产欧美日韩精品 |