STM32用PWM触发ADC采样,采样一定样本后停止,如何设置?

2020-01-03 19:07发布

   想实现的功能如下:
         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);  来关闭中断,主函数处理完后再开启,但是感觉这个做法不好。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
15条回答
liaoliaoliao123
1楼-- · 2020-01-04 09:15
 精彩回答 2  元偷偷看……
GZZXB
2楼-- · 2020-01-04 11:38
liaoliaoliao123 发表于 2019-8-20 10:16
楼主  后来搞定了没

用笨方法实现了,就是每次都初始化下打点定时器。
HalenYU
3楼-- · 2020-01-04 16:36
定时器直接触发启动与关闭,计算好采样时间,DMA连续采样一个定时周期后停止计算数据。只要采样的数据能覆盖到需要采样波形完整周期即可。
liaoliaoliao123
4楼-- · 2020-01-04 18:33
楼主 有没有搞过外部事件触发ADC采集
GZZXB
5楼-- · 2020-01-04 22:27
liaoliaoliao123 发表于 2019-8-21 11:55
楼主 有没有搞过外部事件触发ADC采集

这个没有用过,但是应该是一样的道理只是触发源配置为外部信号触发而已。
ilawp
6楼-- · 2020-01-05 03:59
 精彩回答 2  元偷偷看……

一周热门 更多>