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

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

3天内不再提示

介绍一篇基于DMAMUX同步事件的应用演示

单片机 来源:茶话MCU 作者: Miler 2021-08-14 14:55 次阅读

STM32家族中的很多系列,比如STM32G0/STM32G4/STM32L4+/STM32H7等都内置了DMAMUX模块。有了它一方面使得DMA请求与DMA控制器之间的映射关系更为灵活方便,同时也大大拓展了DMA请求事件,不再局限于外设事件,比方可以基于GPIO的外部中断事件、或者DMA事件本身来触发DMA传输。另外,DMA传输的实现还可以基于其它触发事件来同步其操作,即DMA传输的实现需要借助其它同步事件来真正启动。

本文就基于STM32G4芯片简单介绍下该话题,这里要实现的功能大致是这样的:片内低功耗定时器LPTIM1的定时输出作为DMAMUX的DMA同步输入事件,该同步事件触发UART的DMA传输,通过UART输出一段字符。

本演示例程基于STM32G4系列的Nucleo板进行。低功耗定时器LPTIM工作在PWM输出模式,DMAMUX基于LPTIM每次的定时输出事件为UART2申请一定数目的DMA请求,然后DMA将数据从内存送到UART的数据寄存器并最终将内容显示在PC串口终端。

下面就直接使用STM32CubeMx进入配置过程。

通过CubeMx神器做基本的初始化配置【RCC配置此处就省略了】。

LPTIM1的参考配置如下,具体应用时请结合实际情况来定,这里只需能产生周期性定时输出即可。

UART2外设没有什么特别要提醒的,这里就不贴截图了。我们重点看看有关UART TX的DMA传输的相关配置。

上图中蓝色圈里的勾选框对于本应用演示不是必须勾选的,勾选了也没关系,不会对本演示产生影响。DMA请求数设置为21,表示每检测到1个同步事件后DMAMUX为UART传输申请21个DMA请求,以批量传输21个字符“STM32 DMA SYNCDEMO ”。

完成图形化配置后,生成初始化代码并添加必要的用户代码。

#definePeriodValue (1000)

#define PulseValue (500)

#define Size (21)

uint8_tpData[Size]={‘S’,‘T’,‘M’,‘3’,‘2’,‘ ’,‘D’,‘M’,‘A’,‘ ’,

‘S’,‘Y’,‘N’,‘C’,‘’,‘D’,‘E’,‘M’,‘O’,‘ ’,‘ ’};

HAL_LPTIM_PWM_Start(&hlptim1, PeriodValue, PulseValue) ;

HAL_UART_Transmit_DMA(&huart2, pData, Size);

编译运行,验证结果。

45dfbd00-fc1f-11eb-9bcf-12bb97331649.png

代码运行后,可以通过示波器看到LPTIM的周期性PWM输出,同时PC端也可以看到如上面截图所示的周期性呈现的字符串。

OK,本次基于DMAMUX同步事件的应用演示就介绍到这里,供君参考,更多细节还请阅读STM32相关技术手册。

编辑:jq

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

    关注

    110

    文章

    5635

    浏览量

    181667
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4885

    浏览量

    209811
  • PC
    PC
    +关注

    关注

    9

    文章

    1949

    浏览量

    152768
  • 代码
    +关注

    关注

    30

    文章

    4552

    浏览量

    66642

原文标题:基于STM32 DMAMUX DMA同步事件的应用示例

文章出处:【微信号:aidanpianji,微信公众号:单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32G070的DMA功能,如何实现外部中断触发DMA传输数据到IO口上?

    ); HAL_NVIC_EnableIRQ(DMA1_Channel1_IRQn); /*##-3- Configure and enable the DMAMUX Request
    发表于 04-01 08:24

    关于STM32 DMAMUX模块具体的应用示例代码

    有人通过公众号微信留言,询问是否有关于STM32 DMAMUX模块具体的应用示例代码。同时,个人也发现,虽然STM32片内的DMAMUX不是什么新模块,似乎还是很多人并不太熟悉。这里借机聊聊这方面的内容,重点演示相关功能的实现,
    的头像 发表于 03-25 09:15 849次阅读
    关于STM32 <b class='flag-5'>DMAMUX</b>模块具体的应用示例代码

    宽范围同步降压控制器HX1304应用介绍

    电子发烧友网站提供《宽范围同步降压控制器HX1304应用介绍.pdf》资料免费下载
    发表于 12-25 09:26 1次下载

    同步整流和异步整流介绍

    一、同步整流 同步整流是采用Rdson较低功率MOS,取代了异步整流中续流二极管以降低续流损耗的一种类型。由于功率MOS属于电压型器件。用功率MOS做整流器时,要求栅极电压必须与被整流电压的相位保持
    的头像 发表于 11-20 16:52 807次阅读
    <b class='flag-5'>同步</b>整流和异步整流<b class='flag-5'>介绍</b>

    TPS53353集成MOSFET同步降压转换器介绍

    电子发烧友网站提供《TPS53353集成MOSFET同步降压转换器介绍.pdf》资料免费下载
    发表于 11-07 16:44 0次下载

    STM32WL私有LoRa网络设计原理以及演示介绍

    STM32WL私有LoRa网络设计原理以及演示介绍
    的头像 发表于 09-19 16:42 1840次阅读
    STM32WL私有LoRa网络设计原理以及<b class='flag-5'>演示</b><b class='flag-5'>介绍</b>

    STM32L4串行同步异步收发器(USART)介绍

    通用同步异步接收器-发送器介绍
    发表于 09-12 07:01

    基于STM32H7 EXTI+SPI+DMA双缓冲应用演示

    号分享了有关使用DMAMUX模块通过EXTI同步触发其它DMA请求的文章和关于DMA双缓冲应用原理介绍与参考实现代码。
    的头像 发表于 08-21 09:12 1875次阅读
    基于STM32H7 EXTI+SPI+DMA双缓冲应用<b class='flag-5'>演示</b>

    C++演示中的推理速度比Python演示中的推理速度更快是为什么?

    在同主机机上采用相同型号的 Ran Object Detection C++ 演示 和 对象检测 Python 演示 。 C++ 演示中的推理速度比 Python
    发表于 08-15 06:52

    IO-Link演示系统介绍

    电子发烧友网站提供《IO-Link演示系统介绍.pdf》资料免费下载
    发表于 07-31 15:40 0次下载
    IO-Link<b class='flag-5'>演示</b>系统<b class='flag-5'>介绍</b>

    什么是同步带?同步带张紧的三种方式特性介绍

    同步带是一种带齿的柔性环形皮带,同步带轮上加工有与同步带齿型相匹配的槽,依靠齿与槽的啮合来传递动力。同步带与同步带轮之间无相对滑动,所以保证
    发表于 07-13 11:44 5879次阅读
    什么是<b class='flag-5'>同步</b>带?<b class='flag-5'>同步</b>带张紧的三种方式特性<b class='flag-5'>介绍</b>

    同步电机工作原理动画

    同步电机工作原理动画演示同步电机工作原理相信很多小伙伴还不知道,现在让我们一起来看看吧! 1、同步电机的介绍
    发表于 05-25 16:21 933次阅读

    滨松sCMOS相机的外触发(Trigger)和同步功能的基础介绍

    当今市面上主流的中高端sCMOS相机均采用卷帘曝光(Rolling Shutter)读出模式。此读出模式与外触发和同步功能联系紧密,所以我们首先介绍Rolling Shutter读出模式的基本情况。
    的头像 发表于 05-22 17:39 1017次阅读
    滨松sCMOS相机的外触发(Trigger)和<b class='flag-5'>同步</b>功能的基础<b class='flag-5'>介绍</b>

    求助,S32K144 DMAMUX触发源没有TRGMUX,如何使用TRGMUX_IN0触发DMA传输?

    我想通过引脚触发 DMA 传输,但没有 TRGMUX 的 DMAMUX 触发源。 如何使用 TRGMUX_IN0 触发 DMA 传输?
    发表于 05-04 08:19

    CH32V103基础教程59-TIM-定时器同步

    本章教程主要演示4种定时器同步模式。 1、TIM简介及相关函数介绍定时器能够输出时钟脉冲(TRGO),也能接收其他定时器的输入(ITRx)。不同的定时器的ITRx的来源(别的定时器的TRGO
    发表于 04-27 17:01