用DAC+DMA+TIM2输出正弦波 码表为100个点 。TIM2定时到1us,但是只能输出到1Khz,而且误差为20hz
请问1:是不是输出100K的正弦波 只能通过牺牲码表点数来实现
2:DAC转换时间是不是1us,那码表点数多了,误差是不是会变大啊
------------------------------------------------------------------------------------------------------------------------------
上传了一个是测数据的时候用的,不怎么规范,除了寄存器配置,其他都可以忽略的。。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
原子哥,针对DA的相关测试代码如下:
u16* p = gSampleArray;
for(i = 0; i < 256; ++i, ++p)
DAC_SetChannel1Data(DAC_Align_12b_R, *p);//设置DAC值
gSampleArray是一个周期的256个采样值组成的数组;
通过示波器观察,产生的正弦波频率为18.18kHz,是不是可以说DA转换的时间要小于下面的值:
1000000/18180/256=0.215us
但是文档“STM32F4 开发指南(库函数版)”第342页:
“我们可以从 STM32F407ZGT6 的数据手册查到 tsettling的典型值为 3us ,最大是 6us 。所以 DAC 的转 换速度最快是333K左右。”
这个怎么理解呢?
---------------------------------
原子哥,原来我是TIM2 TRGO事件做DAC1的触发选择 然后通过DMA输出。可以实现了。
现在把TIM2换成TIM3和TIM4都不行,但手册上说可以选择TIM3和TIM4的TRGO触发DAC1.这是怎么回事啊?
---------------------------------
你检查下配置吧.
---------------------------------
能不能把源码贴上开看下。?我想学习下。。。
一周热门 更多>