三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。
目标一:软件触发DAC
根据技术手册设置:
设置GPIO为vwin 输入模式。
设置DAC->CR、DAC->DHR12R1寄存器。
开启KEIL的Debug调试功能:
现象1 :改变DHR12R1寄存器的值,DAC的输出电压不改变
原因和步骤 :每一次DAC的输出都要开启软件触发位。数据手册中的图42中有相关说明。打个不正当的比喻,图中触发源相当于是控制逻辑器的时钟,只有时钟在跳动,控制器才能正常工作。
目标二:实现DAC的三角波输出
根据技术手册设置:
设置MAMP位的三角波幅值。
依据DAC框图使能所以需要打开的控制位。
现象: 成功输出三角波。
目标三:使用DAC+DMA+定时器输出正弦波
根据技术手册设置:
现象: 成功输出正弦波,但是波形中有一个点重复了两次。
原因和步骤 :程序中的正弦波的点不是计算得出,而实通过Python脚本生成的32点数组,在DMA搬运时,DMA的搬运次数设置了32,示波器图中有一点重复。DMA的CNDTR寄存器设置为31及完成了完美的正弦波,知道原因的小伙伴欢迎留言哦。
-
寄存器
+关注
关注
31文章
5336浏览量
120224 -
dac
+关注
关注
43文章
2291浏览量
190970 -
定时器
+关注
关注
23文章
3246浏览量
114713 -
STM32F103
+关注
关注
33文章
477浏览量
63597 -
GPIO
+关注
关注
16文章
1204浏览量
52050
发布评论请先 登录
相关推荐
评论