想实现的功能如下:
1。用定时器产生一路PWM驱动外围电路,并用这路PWM的上升边沿做为ADC开始采集的起始点。
2. ADC采集用DMA传输,PWM边沿触发ADC开始第一个样本的采集,采集完成256个样本后通知主函数进行运算处理。此时不再采集传输以防数据被覆盖。
3. 主函数处理完后,再次允许PWM边沿触发ADC继续采集下一轮256的样本。并且保证第一个样本是PWM边沿触发,就是需要保证同步。
4. PWM一经开启,就不允许再次暂停。
触发ADC采样完256个样本后产生DMA中断,在中断里置位标志。如何暂停ADC和DMA继续动作,处理玩后又如何保证下一个采集的同步呢?
现在的处理是在DMA中断中 用ADC_Cmd(ADC1, DISABLE); 来关闭中断,主函数处理完后再开启,但是感觉这个做法不好。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我的意思是采集够了后关ADC或关DMA都行,如果担心同步的问题就把数据多采一些,前面多余的数据认为不稳定就丢掉。
一周热门 更多>