
开发板官网(https://www.edevkit.com/)
本系列教程目录:
DTC 串口传输实验
本章目标:
- 了解 RA6M5 处理器的 DTC 模块
- 学会使用 RASC 配置 DTC 在指定内存间搬移数据
硬件设计(略,参见配套硬件原理图)
软件设计
新建工程
复制一份"07 SCI-UART_Recv_send"修改文件夹名"28 DTC_UART",直接使用已有的串口模块,不需要创建额外文件,需改 uart.c 和 uart.h 即可。
FSP 配置
Keil 界面选择 "Tools"→"RA Smart Configurator" 打开 RASC 界面。
在之前的串口模块上添加 DTC 发送和接收的驱动。

"Add DTC Driver for Transmission"之后有"Recommended but optional"的字眼、"Add DTC Driver for Reception"之后有"Not recommended"的字眼,即:瑞萨 FSP 库官方推荐我们使用 DTC 来发送 UART 数据(虽然也可以不使用 DTC),但不推荐使用 DTC 来接收 UART 数据。
点击"Add DTC Driver for Transmission"→"New"→"Transfer (r_dtc)"。
只设置发送的 DTC,接收还是使用接收中断。

报错还需要在串口模块中把 DTC 功能打开。

点击 UART 下面的 DTC 模块,会发现 DTC 基本已默认配置好,不用更改。
配置完成之后可以按下快捷键 "Ctrl + S" 保存,最后点击 "Generate Project Content" 按钮,让软件自动生成配置代码即可。
程序设计
串口 DTC 只配置了发送 DTC,不需要去打开 DTC 设备,使用 R_SCI_UART_Write() 会自动使用 DTC 去发送。
程序编写
uart.h 和 uart.c 都不需要修改,只不过现在配置发送 DTC 后,再调用发送函数时会自动使用 DTC,不需要额外的函数。
在 hal_entry.c 文件中添加测试代码。
void hal_entry(void)
{
/* TODO: add your own code here */
led_Init(); // LED 初始化
uart0_Init();
printf("uart init ok\r\n");
while(1)
{
LED1_TOGGLE();
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS); //延时1秒
uint8_t data[] = "Where at in the start up process the code is currently at";
uart_send_data(data, sizeof(data));
//扫描uart接收
uart_scan_rx();
}
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}
下载验证
连接下载器,将程序编译并下载到开发板之后,按下复位按键来复位开发板,程序启动初始化完。
每秒发送字符串,上位机串口发送数据会返回发送的数据。