跳到主要内容

28 DTC 串口传输实验

在这里插入图片描述

开发板官网https://www.edevkit.com/)

本系列教程目录:


DTC 串口传输实验

本章目标:

  • 了解 RA6M5 处理器的 DTC 模块
  • 学会使用 RASC 配置 DTC 在指定内存间搬移数据

硬件设计(略,参见配套硬件原理图)

软件设计

新建工程

复制一份“07 SCI-UART_Recv_send”修改文件夹名“28 DTC_UART”,直接使用已有的串口模块,不需要创建额外文件,需改 uart.cuart.h 即可。

FSP 配置

Keil 界面选择 “Tools”→“RA Smart Configurator” 打开 RASC 界面。

在之前的串口模块上添加 DTC 发送和接收的驱动。

插图01

“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,接收还是使用接收中断。

插图02

插图03

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

插图04

插图05

点击 UART 下面的 DTC 模块,会发现 DTC 基本已默认配置好,不用更改。

配置完成之后可以按下快捷键 “Ctrl + S” 保存,最后点击 “Generate Project Content” 按钮,让软件自动生成配置代码即可。

程序设计

串口 DTC 只配置了发送 DTC,不需要去打开 DTC 设备,使用 R_SCI_UART_Write() 会自动使用 DTC 去发送。

程序编写

uart.huart.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
}

下载验证

连接下载器,将程序编译并下载到开发板之后,按下复位按键来复位开发板,程序启动初始化完。

每秒发送字符串,上位机串口发送数据会返回发送的数据。

插图06