本文将演示如何为瑞萨CPKCOR-RA8D1开发板配置串口功能,并实现最简单的“Hello World”数据打印。串口是嵌入式开发中最常用、最重要的调试手段,此测试是后续所有开发的基础。
1. 硬件连接与引脚确认
首先,我们需要确定使用哪个串口。根据开发板原理图,我们选择使用 USART9 作为调试串口,其对应的引脚为:
- TX (发送):P208
- RX (接收):P201
该串口已连接至板载的J-Link调试器,可实现USB转串口功能。我们只需使用一根Type-C数据线连接核心板的 "Debug USB" 接口至电脑即可,无需额外接线。

2. 使用FSP配置串口
瑞萨的FSP(Flexible Software Package)可以图形化地配置外设,极大简化了开发流程。
- 打开e² studio,创建一个新的Renesas RA项目,选择正确的MCU型号(R7FA8D1BHECBD)。
- 在项目概览页面的“Stacks”标签页下,点击“New Stack” ->
Connectivity-> UART (r_sci_uart)来添加一个串口堆栈。
- 在新生成的
g_uart9堆栈属性中,进行关键参数配置:
- Channel: 选择
9(对应USART9)
- Baud Rate: 设置为
115200
- Pin Configuration: 确认TX和RX引脚自动配置为P208和P201。

- 点击右上角的“Generate Project Content”按钮(或按Ctrl+B),FSP将自动生成底层驱动代码。
3. 编写应用程序代码
配置完成后,我们可以在主程序文件hal_entry.c中编写代码。FSP生成的代码已经完成了串口硬件的初始化,我们直接调用API即可使用。
代码如下:
`#include "hal_data.h"
#include <stdio.h>
// 重定向printf函数到串口9
// 若遇到链接错误,需在项目属性中勾选“Use MicroLIB”或自行实现其他重定向方式
int _write(int file, char *ptr, int len)
{
(void)file;
R_SCI_UART_Write(&g_uart9_ctrl, (uint8_t *)ptr, len);
return len;
}
void hal_entry(void)
{
/* TODO: add your own code here */
hal_systick_init();
HAL_Delay(100);
printf("欢迎使用瑞萨RA8D1开发板!\\r\\n");
printf("串口测试程序启动...\\r\\n");
while (1)
{
printf("RA8D1 USART9 测试 - Hello World! \\r\\n");
HAL_Delay(500);
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}`
代码说明:
_write函数的作用是将标准库printf函数的输出重定向到我们指定的串口9。
hal_systick_init()和HAL_Delay()是用于延时的辅助函数,需要自行实现或使用RTOS的延时API。
printf语句中的\\r\\n是回车换行符,确保每次输出都换行。
4. 编译与下载
- 点击e² studio的“构建”按钮(或按Ctrl+B)编译工程。确保下方控制台没有报错。
- 使用Type-C线连接核心板的 Debug USB 接口到电脑。
- 点击“调试”按钮,程序将自动下载到开发板中并开始运行。

5. 查看串口输出结果
- 在电脑上打开串口调试助手软件(如Putty、SecureCRT或单片机常用的串口助手)。
- 找到对应的串口号(在电脑的设备管理器中查看“端口”一项,会多出一个“J-Link”相关的串口)。
- 设置串口参数:波特率115200、数据位8、停止位1、无校验位、无流控制。
- 点击“打开”串口,即可看到开发板不断打印出的信息。

测试完毕!
至此,我们成功完成了RA8D1的串口配置与打印测试。这个简单的“Hello World”是嵌入式世界的第一步,也是后续复杂调试和功能开发的基础。
|