三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。
目标一:软件触发DAC
根据技术手册设置:
设置GPIO为模拟输入模式。
设置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文章
5588浏览量
129030 -
dac
+关注
关注
44文章
2680浏览量
196372 -
定时器
+关注
关注
23文章
3360浏览量
121699 -
STM32F103
+关注
关注
34文章
490浏览量
67046 -
GPIO
+关注
关注
16文章
1313浏览量
55697
发布评论请先 登录
stm32f103系列引脚定义-功能图
STM32F103教程之STM32F103单片机的使用心得资料免费下载
GD32F103与STM32F103的区别 2021.6.2

学习STM32F103的DAC功能
评论