1.硬件信息
2.rasc配置
2.1sci-usart 配置
2.2 stack配置
2.3串口屬性屬性
2.4 修改堆得大小
默認(rèn)堆得大小是0,在使用printf函數(shù)時(shí)候需要堆得空間所以配置一下堆
軟件編寫(xiě)
bsp_debug_uart.c
#include "bsp_debug_uart.h"
/* 調(diào)試串口 UART4 初始化 */
void bsp_uart_init(void)
{
fsp_err_t err = FSP_SUCCESS;
err = R_SCI_UART_Open (&g_uart0_ctrl, &g_uart0_cfg);
assert(FSP_SUCCESS == err);
}
/* 發(fā)送完成標(biāo)志 */
volatile bool uart_send_complete_flag = false;
/* 串口中斷回調(diào) */
void uart0_callback (uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
/* 把串口接收到的數(shù)據(jù)發(fā)送回去 */
R_SCI_UART_Write(&g_uart0_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_UART_Write(&g_uart0_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_UART_Write(&g_uart0_ctrl, (uint8_t *)&ch, 1);
while(uart_send_complete_flag == false);
uart_send_complete_flag = false;
return ch;
}
#endif
bsp_debug_uart.h
#ifndef __BSP_UART_H__
#define __BSP_UART_H__
#include "hal_data.h"
#include "stdio.h"
void bsp_uart_init(void);
#endif
hal_entery.c
void hal_entry(void)
{
/* TODO: add your own code here */
//初始化io
R_IOPORT_Open (&g_ioport_ctrl, g_ioport.p_cfg);
bsp_uart_init();
printf("hello RA4\\r\\n");
//
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); //延時(shí) 100毫秒
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_04, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); //延時(shí) 100毫秒
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_05, BSP_IO_LEVEL_HIGH);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); //延時(shí) 100毫秒
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_04_PIN_15, BSP_IO_LEVEL_HIGH);
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
效果
審核編輯 黃昊宇
聲明:本文內(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)投訴
-
mcu
+關(guān)注
關(guān)注
146文章
17964瀏覽量
366383
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
熱點(diǎn)推薦
瑞薩RA8系列高性能MCU開(kāi)發(fā)上手體驗(yàn)
大家好,我是痞子衡,是正經(jīng)搞技術(shù)的痞子。今天痞子衡給大家介紹的是瑞薩RA8系列高性能MCU開(kāi)發(fā)上手體驗(yàn)。

瑞薩電子RA系列MCU解決智能物聯(lián)網(wǎng)系統(tǒng)開(kāi)發(fā)痛點(diǎn)
瑞薩電子株式會(huì)社今日宣布推出采用32位ARM?Cortex?-M核的RA(高端)系列MCU。
發(fā)表于 10-08 08:06
?2320次閱讀

瑞薩MCU的相關(guān)資料分享
瑞薩電子推出了適用于空間受限、能源敏感的物聯(lián)網(wǎng) (IoT) 端點(diǎn)應(yīng)用的新型微控制器 (MCU),包括可穿戴設(shè)備、醫(yī)療設(shè)備、電器和工業(yè)自動(dòng)化。新的 RA2E2
發(fā)表于 11-11 08:18
【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】3. 瑞薩RA系列MCU-UART使用
使用printf函數(shù)時(shí)候需要堆得空間所以配置一下堆軟件編寫(xiě)bsp_debug_uart.c#include "bsp_debug_uart.h"/* 調(diào)試串口 UART4 初始化
發(fā)表于 12-01 09:11
【精品聚合】RA-Eco-RA4M2-100PIN開(kāi)發(fā)板試用報(bào)告作品匯總
工程+點(diǎn)亮LED【瑞薩RA4系列開(kāi)發(fā)板體驗(yàn)】3. 瑞薩
發(fā)表于 12-02 16:43
【野火啟明6M5開(kāi)發(fā)板體驗(yàn)】野火啟明開(kāi)發(fā)板和瑞薩RA MCU介紹
首先感謝電子發(fā)燒友和野火,已經(jīng)收到野火啟明6M5開(kāi)發(fā)板。野火啟明6M5開(kāi)發(fā)板包裝野火啟明6M5開(kāi)發(fā)板開(kāi)發(fā)板簡(jiǎn)介:野火啟明6M5開(kāi)發(fā)板是野火科技基于瑞薩RA系列的32位
發(fā)表于 12-14 22:31
【瑞薩RA MCU創(chuàng)意氛圍賽】3. 硬件I2C驅(qū)動(dòng)OLED顯示漢字
【瑞薩RA MCU創(chuàng)意氛圍賽】1. PWM驅(qū)動(dòng)LED以及STLINK下載配置【瑞薩
發(fā)表于 05-26 14:06
瑞薩RA系列MCU選型指南
RA系列MCU產(chǎn)品基于Arm Cortex-M內(nèi)核,與瑞薩自有內(nèi)核RL78和RX系列一起,成為
發(fā)表于 11-08 13:51
?2734次閱讀
線下培訓(xùn) | 瑞薩電子RA MCU應(yīng)用開(kāi)發(fā)培訓(xùn)課程報(bào)名開(kāi)啟![野火電子]
TRAINING RA應(yīng)用開(kāi)發(fā)培訓(xùn)課程來(lái)了! 瑞薩電子RA系列MCU產(chǎn)品基于Arm ?Corte
評(píng)論