微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32产生正弦波

STM32产生正弦波

时间:10-02 整理:3721RD 点击:
我现在用的是STM32F103RCT6型的单片机,我想请问,STM32的DAC+Timer+DMA产生正弦波的原理是什么?它们是怎么联动的?我看了官方给的正弦波程序,但有些地方不明白。譬如,那个正弦表是怎么来的?作用是什么?

两个月前还在和同门研究这个程序呢,这个例子要求的东西挺多的,现在说说自己的看法
此例子考察3个外设的使用:DAC、Timer和DMA
DAC是进行数模转换的,和ADC相反,STM32的AD/DA好像都是12bit位宽的吧,所以DAC是将一个12bit的数字采样值,按比例转化成0~3.3v之间的电压模拟值;
Timer是负责触发采样值输出,它的意义在于将离散的采样值和时间扯上关系,这样才有了实际波形的意义;
DMA则是负责内存RAM和外设DAC间的数据搬移的。
更加详细的解释可以找找NCO(数控振荡器)的原理,这样就可以知道“正弦表”中的数值表示的波形频率和实际DAC输出波形频率之间关系,在STM32工程中它和Timer的定时值有关,都是一个很简单的数学关系
我觉得里面有几个难点:1.三个外设的初始化,一定要注意,细节决定成败;2.波形频率与寄存器设置之间的关系,可以利用示波器多看看;3.结合ADC的例程将AD数据利用DA过程恢复,学习整个过程.

这能产生几种波形,          之前做过不是很理想

用单片机生成各种波形的数据,将数据传输给RAM存储器,通过后级的DA转换器实现波形的产生。

用单片机生成各种波形的数据,将数据传输给RAM存储器,通过后级的DA转换器实现波形的产生。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top