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

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

3天内不再提示

RL78系列MCU DMA在UART中的使用

瑞萨MCU小百科 来源:瑞萨MCU小百科 2024-07-17 14:24 次阅读

对于RL78系列的MCU,为了提高运行效率,减少CPU的占用,建议UART数据收发使用DMA功能。DMA(Direct Memory Access)是RL78 MCU内置的一个控制器,能在支持DMA外围硬件的SFR和内部RAM之间不经过CPU而自动传送数据。

f94cbdc8-43fe-11ef-b8af-92fbcf53809c.png

打开DMA0的配置界面如下,首先要确定DMA0的传送方向,其次选择外设SFR寄存器,以及RAM的地址和指定DMA0传送的数据长度,第三要设置DMA0的触发源。DAM1的设置和DMA0是相同的,根据应用需求,进行相应的配置。

f9650662-43fe-11ef-b8af-92fbcf53809c.png

f980f462-43fe-11ef-b8af-92fbcf53809c.png

UART的配置比较简单,在此不在累述,配置好后,点击“code generator”,生成对应的驱动代码,顺便说,自动生产的串口API函数是没有__far类型的,但是实际测试的时候,发送的数据可能是错误的,因为定义的数据buffer可能不在镜像区,这样会导致传送的地址是错误的,所以为避免类似的情况发生,建议在如下地方修改为__far类型。

f9e6cfb2-43fe-11ef-b8af-92fbcf53809c.png

定义好接收数据的uart_buf[10], 并把数据buffer的地址给到DRA0,如下,DMA0被触发后,会把在SFR接收到的数据直接送给uart_buf[10]。

左右滑动查看完整内容

fa18aa14-43fe-11ef-b8af-92fbcf53809c.png

左右滑动查看完整内容

fa335f62-43fe-11ef-b8af-92fbcf53809c.png

通过DMA1发送数据时,也是一样,要发送数据的buffer的地址赋给DRA1,DMA1被触发后,会把RAM buffer的数据送给SFR进行发送。

左右滑动查看完整内容

fa5c0d68-43fe-11ef-b8af-92fbcf53809c.png

在主函数main里,初始化相关的函数,如下。

左右滑动查看完整内容

fa7a8da6-43fe-11ef-b8af-92fbcf53809c.png

连接好硬件,并把生成的.mot文件下载到MCU里,通过串口助手给MCU发送8个字符数据“12345678”,在应用程序里没有对接收的SFR数据进行处理的情况下,通过DMA0会把接收到SFR的8个数据送到指定的buffer 里,经检查结果,数据接收正确。

fa91efe6-43fe-11ef-b8af-92fbcf53809c.png

fab050d0-43fe-11ef-b8af-92fbcf53809c.png

facb3a6c-43fe-11ef-b8af-92fbcf53809c.png

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

    关注

    146

    文章

    17143

    浏览量

    351138
  • 控制器
    +关注

    关注

    112

    文章

    16356

    浏览量

    177991
  • 寄存器
    +关注

    关注

    31

    文章

    5342

    浏览量

    120325
  • uart
    +关注

    关注

    22

    文章

    1235

    浏览量

    101383
  • dma
    dma
    +关注

    关注

    3

    文章

    561

    浏览量

    100572

原文标题:RL78系列MCU DMA在UART中的使用

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

收藏 人收藏

    评论

    相关推荐

    RL78学***

    在网上看到一本关于RL78的书籍,作者是美国人。全书13章,近400页,内容很充实,欢迎下载:
    发表于 01-04 16:42

    RL78 G12 UART SPI IIC不能同时使用吗?

    如题,RL78 G12的UART、 SPI、 IIC不能同时使用吗?使用cs+的自动代码生成,选择了UART后就不能选择SPI IIC了。
    发表于 01-17 23:16

    RL78/G13 TIMER UART PWM ADC例程

    RL78/G13 TIMER UART PWM ADC例程
    发表于 04-13 10:39

    怎么实现基于瑞萨单片机RL78/I1A系列MCU设计的带数字LED照明系统?

    本设计介绍了基于瑞萨单片机RL78/I1A系列MCU设计的带数字LED照明系统设计方案。
    发表于 06-15 09:21

    瑞萨RL78/G15针对8位MCU应用进行的优化

    ,却发现它缺少可用的I/O端口,使用起来非常不方便在RL78/G15封装系列,除电源/GND引脚以外的所有其他引脚均可用作I/O端口。而且,RL78/G15与现有的
    发表于 02-13 17:48

    RL78/GIDPower Point 翻页笔的应用

    本文档介绍了RL78/GIDPower Point 翻页笔的应用。
    发表于 09-12 19:42 19次下载
    <b class='flag-5'>RL78</b>/GID<b class='flag-5'>在</b>Power Point 翻页笔<b class='flag-5'>中</b>的应用

    介绍MCU的新系列RL78产品的特点与应用

    介绍瑞萨MCU的新系列RL78产品的特点
    的头像 发表于 06-14 00:12 3511次阅读

    介绍了RL78/G13 MCU 开发套件演示

    RL78/G13 Stick上安装了R5F100LE MCU,用户可以直接使用它来评估RL78 MCU的功能和性能。瑞萨提供了RL78/G1
    的头像 发表于 06-14 09:21 4134次阅读

    瑞萨电子推出的RL78/I1x系列微控制器是RL78微控制器系列

    RL78/I1x和RL78 / H1x系列微控制器是基于瑞萨电子RL78 CPU内核为核心构建而成,其中RL78 / I1A
    的头像 发表于 08-01 08:29 6158次阅读

    RL78/G23 Data flash使用教程

    RL78/G23 Data flash使用与之前的RL78系列(如RL78/G13)有所不同,详细介绍及使用如下。
    的头像 发表于 09-09 12:58 2859次阅读

    RL78系列MCU Data Flash使用介绍

    一、Data Flash用途介绍 RL78系列MCU基本都是有数据闪存的,这也是RL78 MCU的特色之一,用户能使用它存储产品的标定参数
    的头像 发表于 12-23 22:10 4890次阅读

    RL78系列IECUBE可选产品列表

    RL78系列IECUBE可选产品列表
    发表于 01-11 18:47 0次下载
    <b class='flag-5'>RL78</b><b class='flag-5'>系列</b>IECUBE可选产品列表

    RL78系列IECUBE可选产品列表

    RL78系列IECUBE可选产品列表
    发表于 06-30 20:30 0次下载
    <b class='flag-5'>RL78</b><b class='flag-5'>系列</b>IECUBE可选产品列表

    互动有礼 | 16位的RL78/G24 MCU可实现与32位MCU相当的性能!

    /G24是一种通用MCU ,CPU运行频率最高可达48MHz,搭载灵活应用加速器(FAA),RL78系列MCU产品之中处理能力也是最强大的
    的头像 发表于 10-20 01:50 728次阅读
    互动有礼 | 16位的<b class='flag-5'>RL78</b>/G24 <b class='flag-5'>MCU</b>可实现与32位<b class='flag-5'>MCU</b>相当的性能!

    RL78/G13 自编方案(通过UART收到的数据) CC-RL Rev.1.01

    电子发烧友网站提供《RL78/G13 自编方案(通过UART收到的数据) CC-RL Rev.1.01.pdf》资料免费下载
    发表于 07-22 10:34 0次下载
    <b class='flag-5'>RL78</b>/G13 自编方案(通过<b class='flag-5'>UART</b>收到的数据) CC-<b class='flag-5'>RL</b> Rev.1.01