女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

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

梁山派GD32F450/470-RT-Thread Nano移植(二)

冬至子 ? 來(lái)源:子牧r ? 作者:子牧r ? 2023-09-25 15:40 ? 次閱讀

在上一篇文章中,我實(shí)現(xiàn)了在keil中給梁山派移植RT-Thread Nano,但在官方的移植教程中,除了系統(tǒng)的移植,還有在 RT-Thread Nano 上添加UART控制臺(tái)與 FinSH的教程,所以我在本文中將實(shí)現(xiàn)在梁山派的Nano上添加UART控制臺(tái)。

文件信息如下

1.jpg

移植步驟如下:
1、打開(kāi)不含UART控制臺(tái)的文件,將梁山派的串口文件加到工程中,如下圖所示

1.jpg

在keil工程中雙擊Hardware文件夾,并在彈出的窗口中選中串口文件并添加進(jìn)工程中

1.jpg

1.jpg

添加完成后再將文件路徑添加到工程包含路徑中

1.jpg

然后我們?cè)賹⑿枰?a target="_blank">GD32F4庫(kù)函數(shù)文件加入工程,雙擊Firmware文件夾,找到
?02庫(kù)函數(shù)點(diǎn)燈FirmwareGD32F4xx_standard_peripheralSource
路徑下的gd32f4xx_misc.c和gd32f4xx_usart.c文件添加到工程中(方法與添加串口文件基本一致,這里不再贅述)

1.jpg

編譯無(wú)錯(cuò)

1.jpg

2、實(shí)現(xiàn)串口初始化
RT-Thread的控制臺(tái)需要通過(guò)uart_init實(shí)現(xiàn)串口初始化,在board.c文件中已經(jīng)搭好了基本框架,但是未開(kāi)啟

1.jpg

所以我們首先要在rtconfig.h 中使能 RT_USING_CONSOLE 宏定義(這個(gè)時(shí)候編譯有錯(cuò)是正常的)

1.jpg

然后在board.c文件中完善串口初始化函數(shù)uart_init
進(jìn)入bsp_usart.c文件
復(fù)制usart_gpio_config函數(shù)中的全部代碼,粘貼到board.c的uart_init函數(shù)中

1.jpg

/* 開(kāi)啟時(shí)鐘 /
rcu_periph_clock_enable(BSP_USART_TX_RCU); // 開(kāi)啟串口時(shí)鐘
rcu_periph_clock_enable(BSP_USART_RX_RCU); // 開(kāi)啟端口時(shí)鐘
rcu_periph_clock_enable(BSP_USART_RCU); // 開(kāi)啟端口時(shí)鐘
/
配置GPIO復(fù)用功能 /
gpio_af_set(BSP_USART_TX_PORT,BSP_USART_AF,BSP_USART_TX_PIN);
gpio_af_set(BSP_USART_RX_PORT,BSP_USART_AF,BSP_USART_RX_PIN);
/
配置GPIO的模式 /
/
配置TX為復(fù)用模式 上拉模式 /
gpio_mode_set(BSP_USART_TX_PORT,GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_TX_PIN);
/
配置RX為復(fù)用模式 上拉模式 /
gpio_mode_set(BSP_USART_RX_PORT, GPIO_MODE_AF,GPIO_PUPD_PULLUP,BSP_USART_RX_PIN);
/
配置TX為推挽輸出 50MHZ /
gpio_output_options_set(BSP_USART_TX_PORT,GPIO_OTYPE_PP,GPIO_OSPEED_50MHZ,BSP_USART_TX_PIN);
/
配置RX為推挽輸出 50MHZ /
gpio_output_options_set(BSP_USART_RX_PORT,GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, BSP_USART_RX_PIN);
/
配置串口的參數(shù) /
usart_deinit(BSP_USART); // 復(fù)位串口
usart_baudrate_set(BSP_USART,band_rate); // 設(shè)置波特率
usart_parity_config(BSP_USART,USART_PM_NONE); // 沒(méi)有校驗(yàn)位
usart_word_length_set(BSP_USART,USART_WL_8BIT); // 8位數(shù)據(jù)位
usart_stop_bit_set(BSP_USART,USART_STB_1BIT); // 1位停止位
/
使能串口 /
usart_enable(BSP_USART); // 使能串口
usart_transmit_config(BSP_USART,USART_TRANSMIT_ENABLE); // 使能串口發(fā)送
usart_receive_config(BSP_USART,USART_RECEIVE_ENABLE); // 使能串口接收
/
中斷配置 */
nvic_irq_enable(BSP_USART_IRQ, 2, 2); // 配置中斷優(yōu)先級(jí)
usart_interrupt_enable(BSP_USART,USART_INT_RBNE); // 讀數(shù)據(jù)緩沖區(qū)非空中斷和溢出錯(cuò)誤中斷
usart_interrupt_enable(BSP_USART,USART_INT_IDLE); // 空閑檢測(cè)中斷
在borad.c中添加頭文件,這一步是為了將bsp_usart.h中的一些宏定義引入,不然會(huì)報(bào)錯(cuò)

#include "bsp_usart.h"

1.jpg

最后再將下圖中是波特率修改為115200(這個(gè)就是控制臺(tái)串口的波特率,后面如果需要使用其他通信速率,可以來(lái)這里修改)

1.jpg

串口初始化完成

1.jpg

3、實(shí)現(xiàn) rt_hw_console_output
這個(gè)就相當(dāng)于串口輸出,實(shí)現(xiàn)了它,RT-Thread的串口輸出函數(shù)rt_kprintf才能夠使用
將下面代碼復(fù)制到rt_hw_console_output函數(shù)中去

rt_size_t i = 0, size = 0;
char a = 'r';
size = rt_strlen(str);
for (i = 0; i < size; i++)
{
    if (*(str + i) == 'n')
    {
        usart_send_data((uint8_t)a);
    }
    usart_send_data((uint8_t)*(str + i));
}

復(fù)制前

1.jpg

復(fù)制后(編譯無(wú)錯(cuò))

1.jpg

以上就實(shí)現(xiàn)了在梁山派的Nano上添加UART控制臺(tái)(實(shí)現(xiàn)打印)
搞個(gè)例程試一試
在main函數(shù)的循環(huán)中添加

rt_kprintf("RT-Threadr");

1.jpg

例程現(xiàn)象如下:

1.jpg

總結(jié)如下:
在梁山派的Nano上添加UART控制臺(tái)
編寫(xiě)使用rt_kprintf函數(shù)串口打印的例程

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

    關(guān)注

    114

    文章

    16959

    瀏覽量

    182857
  • UART接口
    +關(guān)注

    關(guān)注

    0

    文章

    124

    瀏覽量

    15725
  • 串口中斷
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    14236
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1368

    瀏覽量

    41499
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    梁山GD32F450/470-RT-Thread Nano移植(一)

    之所以使用Nano版本,是因?yàn)闀簳r(shí)對(duì)軟件包沒(méi)什么需求,只是想使用RT-Thread的內(nèi)核,而Nano版本正好滿足我目前的需求,所以最后選擇Nano版本進(jìn)行
    的頭像 發(fā)表于 09-25 15:33 ?2975次閱讀
    <b class='flag-5'>梁山</b><b class='flag-5'>派</b><b class='flag-5'>GD32F450</b>/<b class='flag-5'>470-RT-Thread</b> <b class='flag-5'>Nano</b><b class='flag-5'>移植</b>(一)

    梁山GD32F450/470-RT-Thread Nano移植(三)

    RT-Thread FinSH 是 RT-Thread 的命令行組件(shell),提供一套供用戶在命令行調(diào)用的操作接口,主要用于調(diào)試或查看系統(tǒng)信息。
    的頭像 發(fā)表于 09-26 14:50 ?2238次閱讀
    <b class='flag-5'>梁山</b><b class='flag-5'>派</b><b class='flag-5'>GD32F450</b>/<b class='flag-5'>470-RT-Thread</b> <b class='flag-5'>Nano</b><b class='flag-5'>移植</b>(三)

    rt-thread studio新建gd32f450工程

    rt-thread studio 軟件版本是:2.2.6;開(kāi)發(fā)板的軟件包是:GD32450Z-GD-EVAL版本是V1.0.1;開(kāi)發(fā)板使用兆易的官方開(kāi)發(fā)板GD32F450ZKT6。
    的頭像 發(fā)表于 09-28 14:17 ?2111次閱讀
    <b class='flag-5'>rt-thread</b> studio新建<b class='flag-5'>gd32f450</b>工程

    移植RT-Thread操作系統(tǒng)到GD32星空開(kāi)發(fā)板

    。它把面向?qū)ο蟮脑O(shè)計(jì)方法應(yīng)用到實(shí)時(shí)系統(tǒng)設(shè)計(jì)中,使得代碼風(fēng)格優(yōu)雅、架構(gòu)清晰、系統(tǒng)模塊化并且可裁剪性非常好。本次移植所使用開(kāi)發(fā)板為GD32星空: 2 代碼下載目前RT-Thread提供很
    發(fā)表于 10-13 15:56

    移植RT-Thread操作系統(tǒng)到GD32星空開(kāi)發(fā)板

    。它把面向?qū)ο蟮脑O(shè)計(jì)方法應(yīng)用到實(shí)時(shí)系統(tǒng)設(shè)計(jì)中,使得代碼風(fēng)格優(yōu)雅、架構(gòu)清晰、系統(tǒng)模塊化并且可裁剪性非常好。本次移植所使用開(kāi)發(fā)板為GD32星空: 2 代碼下載目前RT-Thread提供很
    發(fā)表于 10-13 16:06

    GD32F4系列芯片移植RTOS Demo工程 GD32F407移植FreeRTOS GD32F407移植RT-Thread

    GD32F4系列移植FreeRTOS和RT-Thread工程例程GD32F407/GD32F450
    發(fā)表于 06-07 22:10

    移植RT-Thread BSP中GDF450工程運(yùn)行在GD32F470芯片上失敗如何修改

    各位好:如題,移植GD32F450的工程運(yùn)行在GD32F470的芯片上,加載成功后程序會(huì)死在rt_smem_alloc函數(shù)里面的289行代碼,RT
    發(fā)表于 11-07 14:18

    GD32F450的開(kāi)發(fā)板工程RT系統(tǒng)啟動(dòng)錯(cuò)誤如何解決呢?

    我自己設(shè)計(jì)的GD32F405的板子,在RT-Thread Studio里用的GD32F450的開(kāi)發(fā)板工程,改了一下RAM大小,從128改成了192然后把SDRAM、eth刪除,在主函數(shù)里寫(xiě)了個(gè)打印hello world。然后修改
    發(fā)表于 02-21 11:33

    【國(guó)產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano

    【國(guó)產(chǎn)MCU移植】HC32F460基于Keil MDK 移植 RT-Thread Nano
    發(fā)表于 11-18 18:51 ?66次下載
    【國(guó)產(chǎn)MCU<b class='flag-5'>移植</b>】HC32<b class='flag-5'>F</b>460基于Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    【國(guó)產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    如需下載相關(guān)開(kāi)源資料請(qǐng)點(diǎn)擊閱讀原文這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行
    發(fā)表于 11-21 18:51 ?42次下載
    【國(guó)產(chǎn)MCU系列】在 HK32<b class='flag-5'>F</b>030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    RT-Thread移植GD32F150系列MCU

    RT-Thread移植GD32F150系列MCU
    發(fā)表于 12-07 19:36 ?7次下載
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>移植</b>到<b class='flag-5'>GD32F</b>150系列MCU

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

    【國(guó)產(chǎn)MCU系列】在 HK32F030 上移植 RT-Thread Nano

    這是一個(gè)航順 HK32F030 的 RT-Thread Nano 移植示例,記錄了在 Keil 裸機(jī)工程的基礎(chǔ)上進(jìn)行 RT-Thread
    發(fā)表于 01-25 17:42 ?4次下載
    【國(guó)產(chǎn)MCU系列】在 HK32<b class='flag-5'>F</b>030 上<b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    基于 Keil MDK 移植 RT-Thread Nano

    本文介紹如何基于 Keil MDK 移植 RT-Thread Nano ,并以一個(gè) stm32f103 的基礎(chǔ)工程作為示例進(jìn)行講解。 RT-Thre
    發(fā)表于 01-26 17:04 ?17次下載
    基于 Keil MDK <b class='flag-5'>移植</b> <b class='flag-5'>RT-Thread</b> <b class='flag-5'>Nano</b>

    RT-Thread開(kāi)發(fā)GD32F450添加spiflash外設(shè)的步驟

    gd32f450工程上使用env工具增加spi falsh。
    的頭像 發(fā)表于 08-07 14:58 ?2563次閱讀
    <b class='flag-5'>RT-Thread</b>開(kāi)發(fā)<b class='flag-5'>GD32F450</b>添加spiflash外設(shè)的步驟