1.硬件信息
2.rasc配置
2.1sci-usart 配置
2.2 stack配置
2.3串口属性属性
2.4 修改堆得大小
默认堆得大小是0,在使用printf函数时候需要堆得空间所以配置一下堆
软件编写
bsp_debug_uart.c
#include "bsp_debug_uart.h"
/* 调试串口 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);
}
/* 发送完成标志 */
volatile bool uart_send_complete_flag = false;
/* 串口中断回调 */
void uart0_callback (uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
/* 把串口接收到的数据发送回去 */
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); //延时 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); //延时 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); //延时 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
效果
审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
mcu
+关注
关注
146文章
17135浏览量
351026
发布评论请先 登录
相关推荐
瑞萨MCU的相关资料分享
瑞萨电子推出了适用于空间受限、能源敏感的物联网 (IoT) 端点应用的新型微控制器 (MCU),包括可穿戴设备、医疗设备、电器和工业自动化。新的 RA2E2
发表于 11-11 08:18
【瑞萨RA4系列开发板体验】3. 瑞萨RA系列MCU-UART使用
使用printf函数时候需要堆得空间所以配置一下堆软件编写bsp_debug_uart.c#include "bsp_debug_uart.h"/* 调试串口 UART4 初始化
发表于 12-01 09:11
【野火启明6M5开发板体验】野火启明开发板和瑞萨RA MCU介绍
首先感谢电子发烧友和野火,已经收到野火启明6M5开发板。野火启明6M5开发板包装野火启明6M5开发板开发板简介:野火启明6M5开发板是野火科技基于瑞萨RA系列的32位
发表于 12-14 22:31
线下培训 | 瑞萨电子RA MCU应用开发培训课程报名开启![野火电子]
TRAINING RA应用开发培训课程来了! 瑞萨电子RA系列MCU产品基于Arm Corte
评论