两个月前还在和同门研究这个程序呢,这个例子要求的东西挺多的,现在说说自己的看法
此例子考察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过程恢复,学习整个过程.
两个月前还在和同门研究这个程序呢,这个例子要求的东西挺多的,现在说说自己的看法
此例子考察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过程恢复,学习整个过程.
举报