eefocus_4014269 发表于 2026-6-2 22:32:04

【瑞萨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]
查看完整版本: 【瑞萨EK-RA4C1】②点灯及串口收发走一波 :)

Baidu
map