我正在编程stm32f2xx的DAC外设。我有一个字节数组(声音)&我想生成采样率= 8K的信号。DAC信号发生器stm32
现在我的问题是: 如何指定采样率?
注: 我GOOGLE了很多。我只使用DMA获得摇摆波的产生和正弦波的产生。我不想使用DMA。
预先感谢帮助... 问候,
我正在编程stm32f2xx的DAC外设。我有一个字节数组(声音)&我想生成采样率= 8K的信号。DAC信号发生器stm32
现在我的问题是: 如何指定采样率?
注: 我GOOGLE了很多。我只使用DMA获得摇摆波的产生和正弦波的产生。我不想使用DMA。
预先感谢帮助... 问候,
这是不切合实际的打出来的波形DAC的不使用DMA。您可以使用样本设置DMA,并将DAC设置为使用计时器作为触发器。然后你设置你的计时器以你想要的采样率触发。
我同意TJD的观点,即在没有DMA的情况下通常不这样做,但这并非不可能,特别是在低采样率下。
可以使用定时器设置触发每1/8000秒作为固定时基。从那里,中断程序需要将下一个采样加载到DAC中。采样率可以通过改变计时器的时基来改变。
与编写代码将正确的采样移入缓冲区相比,编写代码来配置DMA控制器的工作类似。但是,DMA方法更可靠,可能在采样速率上具有较少的抖动,并且释放内核以执行可能需要的其他代码。实际上,通过TIM/DMA/DAC设置,您可能会暂停内核或进入保持外设时钟运行的休眠模式。
是的,我也同意TJD。
使用DMA是有效的,以及释放CPU为其他任务[好]。
管理软件中的时序(带有繁忙循环的核心)[坏]不会产生好的结果。 (所以,使用计时器进行计时[良好])。
现在用于复制,必须奉献CPU做复制一个特定的时间间隔后(从繁忙的环或定时器超时)到DAC寄存器。[衰]
在端我建议,连接DMA和定时器,并在超时时,DMA将数据复制到DAC寄存器[良好]。这个解决方案看起来很难,但实际上安装起来更容易。
[注:写在pov的人试图理解/开始这样的事情]
考虑发布您的问题在http://electronics.stackexchange.com/ – simon 2012-08-02 14:43:18