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

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

3天内不再提示

STM32U5系列TIMER+DMA+DAC应用演示

茶话MCU 来源:茶话MCU 2024-01-24 09:10 次阅读

有人使用STM32U575芯片DAC功能。他希望使用TIMER事件触发DMA,并通过DMA传输内存数据到DAC输出寄存器,进而产生相应的DAC输出波形。可他不知如何配置DMA并实现期望的DAC输出,在ST公司提供的HAL库里也没有找到相关例程可以参考。

baa01174-ba4c-11ee-8b88-92fbcf53809c.png

我这里简单演示一下实现过程,分享出来给有需要的人参考。

我使用TIM3的更新事件触发DMA,每触发一次搬运一个数据到DAC数据寄存器。一共准备了200个数据,在定时器的触发下令DMA循环搬运,让DAC输出一系列正弦波。我使用的开发板是STM32U575 Nucleo板。通过CubeMx进行图形化配置,并基于STM32HAL库组织代码。

先看TIM3的配置,主要是要用它的更新事件,PWM输出不是必需的。

bab0735c-ba4c-11ee-8b88-92fbcf53809c.png

下面是DAC1的基本配置。用到其通道1的对外输出,其它功能根据需要自行调整。

bacd7b96-ba4c-11ee-8b88-92fbcf53809c.png

基于TIM3的更新事件作为DMA请求触发源进行相关配置。DMA使用标准请求模式。源端是内存数据【数据定义为无符号32位】,目的端为DAC数据保持寄存器【访问宽度为32位】。DMA配置成Circular循环传输模式。 见下面的DMA配置截图【使用GPDMA Channel 8】:

bae19b08-ba4c-11ee-8b88-92fbcf53809c.png

baf108fe-ba4c-11ee-8b88-92fbcf53809c.png

配置完成后,创建初始化工程。添加如下必要的用户代码。主要是准备内存数据;开启DAC工作;调用DMA启动函数;使能TIM3更新事件的DMA触发功能;启动TIM3定时器。我把本人所用代码悉数贴出来,以供参考。至于通过CubeMx生成的初始化代码就没必要在这里贴出来了。

bb08442e-ba4c-11ee-8b88-92fbcf53809c.png

验证输出结果。【下面截图中的蓝色部分是TIMER的PWM输出,没展开。】

bb1bc012-ba4c-11ee-8b88-92fbcf53809c.png

整体上,要实现上述功能,首先DMA配置要正确;其次就是组织代码时要适当做些灵活调整;再就是那个DMA启动函数里的数据个数要按源端的数据宽度和传输数据个数换算成总的字节数,即一轮DMA传输的数据字节数。比方这里,源端数据宽度为字【即4字节宽度】,最后设置总的传输个数时是数据个数乘以4。关于这点在本公众号之前的其它文章里也特意讨论过。

上面演示的DMA应用,使用的是标准请求模式,如果使用链表模式也是可以的。有兴趣的话可以自行验证测试。关于DMA链表模式的配置,在本公众号的其它文章里也有介绍,记得也是基于STM32U5系列的。

审核编辑:汤梓红

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

    关注

    31

    文章

    5308

    浏览量

    119975
  • dac
    dac
    +关注

    关注

    43

    文章

    2268

    浏览量

    190819
  • dma
    dma
    +关注

    关注

    3

    文章

    559

    浏览量

    100411
  • HAL库
    +关注

    关注

    1

    文章

    114

    浏览量

    6168

原文标题:STM32U5系列TIMER+DMA+DAC应用演示

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于STM32U5STM32CubeMX环境搭建

    基于STM32U5STM32CubeMX环境搭建
    的头像 发表于 09-21 17:35 1443次阅读
    基于<b class='flag-5'>STM32U5</b> 的 <b class='flag-5'>STM32</b>CubeMX环境搭建

    STM32U5系列采用LPBAM进行电源优化

    STM32U5系列采用LPBAM进行电源优化
    发表于 11-21 08:11 0次下载
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>采用LPBAM进行电源优化

    如何校准STM32U5 系列上的内部RC振荡器

    如何校准STM32U5 系列上的内部RC振荡器
    发表于 11-21 08:11 0次下载
    如何校准<b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>上的内部RC振荡器

    STM32U5 系列STM32Cube MCU 封装示例

    STM32U5 系列STM32Cube MCU 封装示例
    发表于 11-21 08:11 0次下载
    <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>的 <b class='flag-5'>STM32</b>Cube MCU 封装示例

    STM32L5STM32U5系列的Arm®TrustZone®功能

    STM32L5STM32U5系列的Arm®TrustZone®功能
    发表于 11-21 17:06 0次下载
    <b class='flag-5'>STM32L5</b>和<b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>的Arm®TrustZone®功能

    STM32U5系列物联网节点探索套件

    STM32U5系列物联网节点探索套件
    发表于 11-22 08:21 0次下载
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>物联网节点探索套件

    AN5701 STM32U5 系列STM32Cube MCU 包示例

    AN5701 STM32U5 系列STM32Cube MCU 包示例
    发表于 11-24 08:34 0次下载
    AN5701 <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>的 <b class='flag-5'>STM32</b>Cube MCU 包示例

    AN5676 如何在 STM32U5 系列上校准内部 RC 振荡器

    AN5676 如何在 STM32U5 系列上校准内部 RC 振荡器
    发表于 11-24 08:34 0次下载
    AN5676 如何在 <b class='flag-5'>STM32U5</b> <b class='flag-5'>系列</b>上校准内部 RC 振荡器

    应用笔记|如何在 STM32U5 系列上校准内部 RC 振荡器

    目录预览 0.前言 1.STM32U5 系统时钟 2.内部 RC 振荡器校准 3.内部 LSI 振荡器测量 4.X-CUBE-RC-CALIB 演示 5.结论 0.前言 STM32U5
    的头像 发表于 12-12 21:35 2045次阅读

    STM32U5系列STM32Cube MCU包示例

    电子发烧友网站提供《STM32U5系列STM32Cube MCU包示例.pdf》资料免费下载
    发表于 08-01 10:09 2次下载
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>的<b class='flag-5'>STM32</b>Cube MCU包示例

    STM32U5系列使用LPBAM进行功耗优化

    电子发烧友网站提供《STM32U5系列使用LPBAM进行功耗优化.pdf》资料免费下载
    发表于 08-01 16:42 2次下载
    <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>使用LPBAM进行功耗优化

    STM32U5 LPBAM模式介绍

    STM32U5 LPBAM模式介绍
    的头像 发表于 10-26 17:59 719次阅读
    <b class='flag-5'>STM32U5</b> LPBAM模式介绍

    STM32CubeU5 STM32U5系列入门

    电子发烧友网站提供《STM32CubeU5 STM32U5系列入门.pdf》资料免费下载
    发表于 09-19 17:04 1次下载
    <b class='flag-5'>STM32CubeU5</b> <b class='flag-5'>STM32U5</b><b class='flag-5'>系列</b>入门

    STM32U5介绍

    电子发烧友网站提供《STM32U5介绍.pdf》资料免费下载
    发表于 09-19 15:06 0次下载
    <b class='flag-5'>STM32U5</b>介绍

    STM32项目实战:基于STM32U5的火灾报警系统(LVGL),附项目教程/源码

    小编来分享一个《火灾报警系统》的项目案例,硬件平台是STM32U5开发板+资源扩展板+显示触摸屏+仿真器,项目的演示界面如下图所示。火灾报警系统项目,需要一个蜂鸣
    的头像 发表于 11-13 14:18 362次阅读
    <b class='flag-5'>STM32</b>项目实战:基于<b class='flag-5'>STM32U5</b>的火灾报警系统(LVGL),附项目教程/源码