作者 | strongerHuang
微信公眾號(hào)| strongerHuang
串口是最常見(jiàn)的通信方式之一,也是單片機(jī)調(diào)試最常見(jiàn)的通信接口,也是現(xiàn)在的單片機(jī)必備的通信接口,目前(2024-05)最新、最強(qiáng)的Cortext-M85內(nèi)核的RA8系列單片機(jī)也不例外。
今天就結(jié)合瑞薩Cortext-M85內(nèi)核RA8系列單片機(jī)給大家講講串口輸出實(shí)現(xiàn)的方法,簡(jiǎn)單到只需要一分鐘左右即可配置好。
準(zhǔn)備工作
要快速使用瑞薩Cortext-M85內(nèi)核RA8系列單片機(jī),需要有一些準(zhǔn)備工作。
1、下載安裝集成開(kāi)發(fā)環(huán)境瑞薩單片機(jī)的集成開(kāi)發(fā)工具(IDE)有很多,比如:瑞薩自家的e2s、Keil、 IAR等。
這里大家可以參看我之前分享的文章:瑞薩RA8系列教程 | 瑞薩 RA8 開(kāi)發(fā)環(huán)境e2s搭建Keil系列教程_Keil介紹、下載、安裝與注冊(cè)
2、準(zhǔn)備硬件板卡雖然現(xiàn)在仿真工具都可以實(shí)現(xiàn)單片機(jī)的要一些功能,但我們最好還是在硬件實(shí)物上跑程序更能學(xué)會(huì)技術(shù)。
本教程就使用瑞薩CPKCOR_RA8D1B評(píng)估板,這塊板卡使用RA8D1單片機(jī),并集成了J-link,我們只需要用一根線連接電腦即可下載調(diào)試。
當(dāng)然,如果你板卡沒(méi)有集成J-Link,就需要單獨(dú)準(zhǔn)備一個(gè)。
以上就是主要的準(zhǔn)備工作,其實(shí)也挺簡(jiǎn)單,入門(mén)都要準(zhǔn)備的工作。
一分鐘上手Cortext-M85單片機(jī)串口
e2s集成了很多功能,我們只需要?jiǎng)觿?dòng)鼠標(biāo)就能快速創(chuàng)建并生成一個(gè)工程。
1、基于e2s快速創(chuàng)建一個(gè)工程打開(kāi)e2s,文件 -> 新建-> 瑞薩C/C++項(xiàng)目-> Renesas RA:


輸入工程名稱,比如我們輸入RA8D1_UART:

選擇單片機(jī)型號(hào),比如R7FA8D1BHEC:

然后,根據(jù)提示,一步一步下去,就可以創(chuàng)建一個(gè)RA8工程:



2、配置串口這里只需要根據(jù)圖形化界面,簡(jiǎn)單配置一下串口即可使用串口。
我們?cè)谝_(Pins)的位置,選擇外設(shè)(Peripherals)-> SLI4,配置成異步通信模式:

在 Stacts -> New Stacts,新建一個(gè)UART:

然后,在配置一下UART參數(shù)(屬性):

這里根據(jù)自己情況修改幾個(gè)主要參數(shù),其他大多數(shù)默認(rèn)即可,如果需要中斷,就需要自己定義一個(gè)中斷回調(diào)函數(shù):

如果要使用printf就還需要配置兩個(gè)地方,1、heap棧大小;2、工程設(shè)置。


接下來(lái)就是添加代碼了,我們添加兩個(gè)源文件:bsp_debug_uart.h和bsp_debug_uart.c
其中bsp_debug_uart.h就是包含頭文件,以及聲明函數(shù)。
#ifndef __BSP_DEBUG_UART_H #define __BSP_DEBUG_UART_H #include "hal_data.h" #include void Debug_UART4_Init(void); #endif
其中bsp_debug_uart.c源文件也比較簡(jiǎn)單:
#include "bsp_debug_uart.h" /* 調(diào)試串口 UART4 初始化 */ void Debug_UART4_Init(void) { fsp_err_t err = FSP_SUCCESS; err = R_SCI_B_UART_Open(&g_uart4_ctrl, &g_uart4_cfg); assert(FSP_SUCCESS == err);} /* 發(fā)送完成標(biāo)志 */ volatile bool uart_send_complete_flag = false; /* 串口中斷回調(diào) */ void debug_uart4_callback (uart_callback_args_t * p_args) { switch (p_args->event) { case UART_EVENT_RX_CHAR: { /* 把串口接收到的數(shù)據(jù)發(fā)送回去 */ R_SCI_B_UART_Write(&g_uart4_ctrl, (uint8_t *)&(p_args->data), 1); break; } case UART_EVENT_TX_COMPLETE: { uart_send_complete_flag = true; break; } default: break; } } /* 重定向 printf 輸出 */ #if defined __GNUC__ && !defined __clang__ int _write(int fd, char *pBuffer, int size); //防止編譯警告 int _write(int fd, char *pBuffer, int size) { (void)fd; R_SCI_B_UART_Write(&g_uart4_ctrl, (uint8_t *)pBuffer, (uint32_t)size); while(uart_send_complete_flag == false); uart_send_complete_flag = false; return size; } #else int fputc(int ch, FILE *f) { (void)f; R_SCI_B_UART_Write(&g_uart4_ctrl, (uint8_t *)&ch, 1); while(uart_send_complete_flag == false); uart_send_complete_flag = false; return ch; } #endif
這樣下來(lái)就算完成了,你往單片機(jī)發(fā)送什么字符,它就會(huì)給你發(fā)回來(lái),比如:往里面發(fā)字符“A”

到這里就完成了一個(gè)RA8單片機(jī)串口的配置,是不是很簡(jiǎn)單?對(duì)于有一定基礎(chǔ)的朋友,基本上一分鐘就能搞定。
RA8系列教程更新ing···
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44867瀏覽量
646027 -
RA8
+關(guān)注
關(guān)注
0文章
13瀏覽量
6697 -
串口輸出
+關(guān)注
關(guān)注
0文章
17瀏覽量
7628
發(fā)布評(píng)論請(qǐng)先 登錄
基于瑞薩RA8單片機(jī)的智能小車(chē)項(xiàng)目方案 附源代碼

瑞薩RA8系列高性能MCU開(kāi)發(fā)上手體驗(yàn)

瑞薩RA8快速上手指南:Cortex-M85內(nèi)核瑞薩RA8開(kāi)發(fā)環(huán)境搭建 并點(diǎn)亮一個(gè)LED

瑞薩面向電機(jī)控制應(yīng)用推出性能卓越的RA8 MCU

IAR為瑞薩RA8系列MCU開(kāi)發(fā)提供支持
瑞薩電子推出全新RA MCU家族產(chǎn)品RA8

AMEYA360 | 皇華:瑞薩面向電機(jī)控制應(yīng)用推出性能卓越的RA8 MCU
瑞薩電子RA家族推出RA8系列高算力通用MCU

瑞薩電子全新RA8系列MCU產(chǎn)品介紹

瑞薩電子RA8E1和RA8E2 MCU新品解讀

瑞薩RA8系列教程 | 學(xué)習(xí) RA8 常看文檔手冊(cè)

瑞薩RA8系列教程 | 基于 e2 studio 創(chuàng)建RA8工程

評(píng)論