0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA系列FSP库开发实战指南之DTC+UART串口收发实验

瑞萨嵌入式小百科 来源:野火电子 2026-01-05 14:29 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

19.10

实验4:DTC+UART串口收发

19.10.1

软件设计

19.10.1.1

新建工程

本实验新建工程的步骤与上面的实验3基本一致。

对于e2studio开发环境:

拷贝一份我们之前的e2s工程 “19_UART_Receive_Send”,然后将工

程文件夹重命名为“20_DTC_Using_UART”,最后再将它导入到我们的e2studio工作空间中。

对于Keil开发环境:

拷贝一份我们之前的Keil工程“19_UART_Receive_Send”,然后将工程文

件夹重命名为“20_DTC_Using_UART”,并进入该文件夹里面双击Keil工程文件,打开该工程。

工程新建好之后,在工程根目录的“src”文件夹下面新建“dtc”文件夹,再进入“dtc”文件夹里面新建源文件和头文件:“bsp_dtc.c”和“bsp_dtc.h”。工程文件结构如下。

列表26:文件结构

左右滑动查看完整内容

20_DTC_External_Interrupt
├─ ......
└─src
├─ led
│ ├─ bsp_led.c
│ └─ bsp_led.h
├─ debug_uart
│ ├─ bsp_debug_uart.c
│ └─ bsp_debug_uart.h
├─ dtc
│ ├─ bsp_dtc.c
│ └─ bsp_dtc.h
└─ hal_entry.c

19.10.1.2

FSP配置

打开该工程的FSP配置界面。

在“Stacks”一栏里面我们可以看到,工程“19_UART_Receive_Send”已有UART模块的配置了,如下图所示。

e5c6606a-e46b-11f0-8c8f-92fbcf53809c.png

在这个已有的UART模块上面,我们下一步直接在该UART模块的底层添加DTC传输驱动。如下图所示。

e61e5216-e46b-11f0-8c8f-92fbcf53809c.png

按照如下的步骤操作,为UART的发送和接收都添加DTC底层驱动:

UART发送:用鼠标依次点击“Add DTC Driver for Transmission”→“New”→“Transfer (r_dtc)”。

UART接收:用鼠标依次点击“Add DTC Driver for Reception”→“New”→“Transfer(r_dtc)”。

我们注意到:“Add DTC Driver for Transmission”之后有“[Recommended but optional]”的字眼、“Add DTC Driver for Reception”之后有“[Not recommended]”的字眼,即:瑞萨FSP库官方推荐我们使用DTC来发送UART数据(虽然也可以不使用DTC),但不推荐使用DTC来接收UART数据。后面我们再来讲讲这是为什么。

添加完成后如下图所示:

e6d18548-e46b-11f0-8c8f-92fbcf53809c.png

上图中显示的UART模块显示为红色,是报错的,对此还需要修改下UART模块的配置。点击UART 模块,在属性配置里将“Common”→“DTC Support”属性由“Disable”改为“Enable”即可。

接着顺便也点击下UART下面的DTC模块,会发现DTC是基本默认配置好的了,不用我们更改,也无法更改,能改的只有名字,我们把名字改一下,就可以点击生成代码,然后编译了。

e729fe08-e46b-11f0-8c8f-92fbcf53809c.png

与上面使用DTC一些不同的地方是,瑞萨已经将DTC融入到UART中了,所以我们在使用过程中基本感觉不到我们在使用DTC传输数据给UART。

比如,正常情况下会有一个open函数去开启DTC的,但现在不同自己去调用该函数,因为我们在使用g_uart_on_sci.open函数去开启串口时,就已经在内部调用了DTC的开启函数。

我们只需调用g_transfer_on_dtc.enable函数进行使能就好了。

列表27:代码清单20‑23使能dtc

左右滑动查看完整内容

err = g_transfer_on_dtc.enable(g_uart4.p_cfg->p_transfer_rx->p_ctrl);
assert(FSP_SUCCESS == err);

使能后就可以像正常使用串口基本一样了。区别主要在于:

使用DTC后,串口可以不用等待发送完成,只需激活DTC后自动进行搬运数据,不占用CPU

中断开启DTC后相当于DTC接管了串口的中断。

使用g_uart_on_sci.write或者R_SCI_UART_Write函数将字符串数据发送到串口,该函数内部会采用DTC来传输。

列表28:代码清单20‑24测试dtc串口

左右滑动查看完整内容

uint8_t sci_tx_data[] = {"embedfire-野火 www.embedfire.com
"};
/* 在 while(1) 中循环调用 */
// 可以尝试在 configuration.xml 中将 DTC 模块去除,再进行代码调试,看看会有什么区别
g_uart_on_sci.write(g_uart4.p_ctrl, (uint8_t *)(sci_tx_data),sizeof(sci_
→tx_data)/sizeof(sci_tx_data[0]));

19.10.1.3

为什么不用DTC接收串口数据

在实际使用过程中DTC有一些限制:

在本实验中使用DTC发送串口数据,但我们没有配置使用DTC接收串口数据,因为具体配置过程可能会很复杂,而且我们并不知道串口具体要接收多少数据,而DTC是传输完成了才会产生中断,这样就可能存在,我设定接受数据长度为128,但实际传输可能只有100,这时候就不会产生中断,虽然接收了数据,但我们不知道。

如果使用DTC接口进行传输,则传输大小必须小于或等于64K字节。

所以,虽然在FSP配置页面上,显示有DTC这个选项,但不建议去使用DTC进行接收。

19.10.2

实验现象

运行例程代码时,可以在串口助手看到字符串“embedfire-野火 www.embedfire.com”,以一秒传输一次的频率传输字符串,led 也是一秒变换一次。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞萨
    +关注

    关注

    38

    文章

    22543

    浏览量

    91749
  • 串口
    +关注

    关注

    15

    文章

    1630

    浏览量

    83628
  • uart
    +关注

    关注

    22

    文章

    1325

    浏览量

    107196
  • 开发环境
    +关注

    关注

    1

    文章

    277

    浏览量

    17716

原文标题:实验4:DTC+UART串口收发——瑞萨RA系列FSP库开发实战指南(61)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA系列FSP开发实战指南DMAC+UART串口收发实验

    拷贝一份我们之前的e2s工程“19_UART_Receive_Send”,然后将工程文件夹重命名为“20_DMAC_Using_UART”,最后再将它导入到我们的e2studio工作空间中。
    的头像 发表于 12-26 09:28 4694次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>DMAC+<b class='flag-5'>UART</b><b class='flag-5'>串口</b><b class='flag-5'>收发</b><b class='flag-5'>实验</b>

    RA系列FSP开发实战指南DTC外部中断触发传输实验

    实验的目标是使用外部中断来触发DTC传输,因此需要用到一个按键。
    的头像 发表于 12-26 09:32 4348次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b><b class='flag-5'>DTC</b>外部中断触发传输<b class='flag-5'>实验</b>

    RA系列FSP开发实战指南I2C读写EEPROM实验

    使用官方提供的FPS进行编程,官方提供的FPS具有方便、快捷、简洁的特性。
    的头像 发表于 01-27 10:02 3954次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C读写EEPROM<b class='flag-5'>实验</b>

    RA系列FSP开发实战指南QSPI读写外部Flash芯片实验

    因为本章节的QSPI Flash相关实验例程需要用到板子上的串口功能,因此我们可以直接以前面的“19_UART_Receive_Send”工程为基础进行修改。
    的头像 发表于 03-03 13:57 6634次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>QSPI读写外部Flash芯片<b class='flag-5'>实验</b>

    RA MCU众测宝典 | 串口RA-Eco-RA2L1】RTC日历及串口设置时间

    “RAMCU众测宝典”串口专题添硬核实操!开启宝典前言RAMCU众测宝典|串口RA2L1
    的头像 发表于 04-21 18:07 7260次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b> MCU众测宝典 | <b class='flag-5'>串口</b><b class='flag-5'>之</b>【<b class='flag-5'>RA-Eco-RA</b>2L1】RTC日历及<b class='flag-5'>串口</b>设置时间

    基于FPB-RA0E2开发板实现UART串口打印HELLO WORLD

    本篇文章主要介绍如何使用e2 studio灵活软件包(FSP)对FPB-RA0E2单片机开发板进行U
    的头像 发表于 05-19 11:19 3579次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>FPB-<b class='flag-5'>RA</b>0E2<b class='flag-5'>开发</b>板实现<b class='flag-5'>UART</b><b class='flag-5'>串口</b>打印HELLO WORLD

    e2studio(1)----芯片搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发
    发表于 09-30 15:28

    RA2L1入门学习】1. 点亮LED

    参考“RA2L1入门教学实验.pdf”进行的,之前使用过STM32CubeIDE和STM32CubeMX软件,相对应的是e2stud
    发表于 01-29 22:17

    **RA2L1入门学习】+**UART测试实验

    RA2L1入门学习】+UART测试实验 本篇文章主要介绍如何使用e2studio对
    发表于 03-09 15:45

    RA4系列开发板体验】开发环境搭建和新手点灯指南

    RA4系列开发板体验】开发环境搭建和新手点灯指南
    发表于 11-24 22:54

    RA4系列开发板体验】CoreMark移植完全指南——UART输出和SysTick计时的应用

    /chapter19.html【野火 RA系列FSP
    发表于 12-03 15:05

    RA4系列开发板体验】体验过程

    拿到板子之后,做了几个实验过程,过程如下:1、在好奇心驱动下,逐步接触;参照网上的实例,学习开发环境一、开箱验货二、搭建环境参考“ 【
    发表于 12-18 16:20

    【野火启明6M5开发板体验】开箱+认识开发板+资料

    按键检测29. WiFi——模块通讯板尺寸:3、资料:*附件:[野火EmbedFire]《RA系列FSP
    发表于 12-20 23:28

    【有奖直播预报名】电子RA系列产品开发工具FSP4.0.0新特性介绍

    为使用电子RA系列ARM微控制器的嵌入式系统设计提供简单易用且可扩展的高质量软件。 直播主题
    的头像 发表于 11-22 12:20 1832次阅读

    基于RA0E1开发板的ThreadX实时操作系统串口回显测试

    感谢立创提供测试机会,学到RA0及MCU的相关使用。使用FSP
    的头像 发表于 02-25 09:27 1459次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b>0E1<b class='flag-5'>开发</b>板的ThreadX实时操作系统<b class='flag-5'>串口</b>回显测试