你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

G431,定时器无法触发DMA更新DAC值

[复制链接]
pigeoncnc 提问时间:2024-6-7 11:39 / 未解决

如图进行初始化配置:

DAC配置为TIM2触发信号触发:

image.png

DMA配置:

image.png

定时器配置:

image.png

在初始化后,调用如下函数,启动DAC与DMA:

HAL_DAC_Start(&hdac1,DAC_CHANNEL_1);
HAL_DAC_Start(&hdac1,DAC_CHANNEL_2);

HAL_TIM_Base_Start(&htim2);
HAL_DAC_Start_DMA(&hdac1,DAC_CHANNEL_1,(uint32_t *)sinArr,SIN_ARR_LEN,DAC_ALIGN_12B_R);

但无法触发DMA更新,TIM2寄存器TG信号也无法观察到更新过程

求教!不胜感激!

收藏 评论3 发布时间:2024-6-7 11:39

举报

3个回答
yr 回答时间:2024-6-8 17:15:39

一个提醒,dma设置中datawidth要搞成word试试看

xmshao 回答时间:7 天前
从你的配置来看,触发DMA的是DAC事件,不是TIMER事件。 这里TIMER挺多做了个触发启动。


如果你希望基于TIMER事件触发DMA进而修改DAC输出寄存器,你的配置要调整。


DMA请求改为TIMER事件,比方比较事件、更新事件等,源端自然还是内存数据,目的端


是DAC数据寄存器。 代码要适当自己组织下。库里应该没有现存代码。


关于你这个问题,可以参考这篇《基于STM32G4芯片的DAC应用示例》,可以说是专为你而写~!
岚_ 回答时间:4 天前

可以参考这个工程里面的配置

20.DAC正弦波.rar

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版