【瑞萨EK-RA4C1】②点灯及串口收发走一波 :)
本帖最后由 eefocus_4014269 于 2026-6-2 22:35 编辑【瑞萨EK-RA4C1】①热气腾腾的开箱,诚意满满的分享
//m.qjumbo.com/forum/thread-235437-1-1.html
书接上回,开箱后马上开始点灯之旅。首先搭建开发环境。
目前瑞萨官网最新IDE版本:Renesas RA v6.5.0 e2 studio V2026-04
通过瑞萨官网下载,杯具了,下载只有19KB/S,而且中途还会断掉。
后面换个思路
下载源:https://github.com/renesas/fsp/r ... _e2s_v2026-04.2.exe
下载工具:Free Download Manager(开源的免费下载加速工具)
终于**可达816KB/S,1小时内下载完毕。
先来点灯:
查询用户手册得知
LED1——P610
LED2——P407
LED3——P404
打开e2 studio新建RA FSP工程,选择开发板型号EK-RA4C1
选择Blinky模板,如下图:
在configuration中的Pins设置中,实际上系统已经自动帮我们设置好了LED1/LED2/LED3
如下图:
我们只需在hal_entry.c中添加点灯代码
void hal_entry(void)
{
/* TODO: add your own code here */
unsigned char buff[]="Hello World!\n";
R_SCI_UART_Open(&g_uart4_ctrl, &g_uart4_cfg);
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_10, BSP_IO_LEVEL_LOW); //LED1低电平
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS); //延时500毫秒
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_10, BSP_IO_LEVEL_HIGH);//LED1高电平
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);//延时500毫秒
}
}
然后编译下载,就可以看到蓝色LED1灯闪烁了。
接下来搞定串口收发!
先设置串口Stacks,如图在configuration中的Stacks设置中
1.添加UART(r_sci_uart)
2.依次添加t_DTC和r_DTC
3.这时会有报错信息,提示DTC必须开启,点击链接。
4.在下方的设置栏中将DTC设置为Enable,报错消失。
5.接下来是最终要的设置
1)Name:串口名称,这个随意取,但最好跟MCU的串口号对应。
查阅EK-RA4C1用户手册,发现P207、P206对应Debug Serial ,也就是调试器插在电脑上对应的虚拟串口。(不是RXD2 TXD2,那个是相对于调试器的)
而在Pins——SCI中,我们发现SCI4的RXD、TXD正好对应P206、P207,所以真正的MCU串口号是UART4,所以本例串口号设置为g_uart4
2)Channel:串口号,也是4
3)callback:串口发送和接收的中断函数名称,这里取名:uart4_callback
4)Pins:设置为P206、P207,其他参数就保持默认。
回到hal_entry.c函数中,添加串口收发功能。
void hal_entry(void)
{
/* TODO: add your own code here */
unsigned char buff[]="Hello World!\n";
R_SCI_UART_Open(&g_uart4_ctrl, &g_uart4_cfg);
while(1)
{
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_10, BSP_IO_LEVEL_LOW);
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);
R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_06_PIN_10, BSP_IO_LEVEL_HIGH);
R_BSP_SoftwareDelay (500, BSP_DELAY_UNITS_MILLISECONDS);
R_SCI_UART_Write(&g_uart4_ctrl, buff, strlen(buff));//每秒发送一次字符串
}
}
void uart4_callback (uart_callback_args_t * p_args)
{
switch (p_args->event)
{
case UART_EVENT_RX_CHAR:
{
/* 把串口接收到的数据发送回去 */
R_SCI_UART_Write(&g_uart4_ctrl, (uint8_t *)&(p_args->data), 1);
break;
}
case UART_EVENT_TX_COMPLETE:
{
break;
}
default:
break;
}
}
功能显示如下:
页:
[1]