学习STM32F103的DAC功能

描述

踩坑STM32F103系列-----DAC

三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。

目标一:软件触发DAC

根据技术手册设置:

设置GPIO为模拟输入模式。

设置DAC->CR、DAC->DHR12R1寄存器。

开启KEIL的Debug调试功能:

现象1 :改变DHR12R1寄存器的值,DAC的输出电压不改变

原因和步骤 :每一次DAC的输出都要开启软件触发位。数据手册中的图42中有相关说明。打个不正当的比喻,图中触发源相当于是控制逻辑器的时钟,只有时钟在跳动,控制器才能正常工作。

寄存器

目标二:实现DAC的三角波输出

根据技术手册设置:

使用定时器6输出,触发源信号。

设置MAMP位的三角波幅值。

依据DAC框图使能所以需要打开的控制位。

现象: 成功输出三角波。

目标三:使用DAC+DMA+定时器输出正弦波

根据技术手册设置:

现象: 成功输出正弦波,但是波形中有一个点重复了两次。

寄存器

原因和步骤 :程序中的正弦波的点不是计算得出,而实通过Python脚本生成的32点数组,在DMA搬运时,DMA的搬运次数设置了32,示波器图中有一点重复。DMA的CNDTR寄存器设置为31及完成了完美的正弦波,知道原因的小伙伴欢迎留言哦。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分