1
踩坑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及完成了完美的正弦波,知道原因的小伙伴欢迎留言哦。
全部0条评论
快来发表一下你的评论吧 !