被arm摧残者 发表于 2023-6-15 16:45:27

ADC采样问题

STM32F407,开启了一个时间为500us的定时器中断,然后ADC设置的软件触发模式,单次转换,在定时器中断中开启ADC的软件触发,利用DEBUG观看数值发现ADC的读数为1万多,ADC采用的是ADC+DMA传输方式,如在启动ADC的程序后增加了一个100多us的程序,ADC的读数则恢复正常。此外利用图片这种方式进行采样取平均值,为什么在debug里面设断点看值是对的,取消断点后值就出错,有大佬能帮忙看看嘛?

eric2013 发表于 2023-6-15 18:26:08

仅看你的截图,程序有问题。

你的DMA传输不是立即完成的。

被arm摧残者 发表于 2023-6-15 21:12:20

eric2013 发表于 2023-6-15 18:26
仅看你的截图,程序有问题。

你的DMA传输不是立即完成的。

请问大佬,我就一个ADC1,要采6个通道,怎么能实现采4次做平均呢,我这个判断DMA传输完成标志位的方法是不对的嘛?

被arm摧残者 发表于 2023-6-16 00:10:34

eric2013 发表于 2023-6-15 18:26
仅看你的截图,程序有问题。

你的DMA传输不是立即完成的。

请问大佬,要实现我这个思路,程序应该是怎么样啊,这个DMA标志位不能用作判断嘛?

2360985396 发表于 2023-7-4 15:05:26

被arm摧残者 发表于 2023-6-15 21:12
请问大佬,我就一个ADC1,要采6个通道,怎么能实现采4次做平均呢,我这个判断DMA传输完成标志位的方法是 ...

DMA完成中断 或者转换累计打到了你的ADC通道的次数

eric2013 发表于 2023-7-5 09:10:42

被arm摧残者 发表于 2023-6-15 21:12
请问大佬,我就一个ADC1,要采6个通道,怎么能实现采4次做平均呢,我这个判断DMA传输完成标志位的方法是 ...

不好意思,忘了回复了。

你采用软件触发的话,可以配置DMA采集4轮,并开DMA中断,这样就可以及时的求平均。
页: [1]
查看完整版本: ADC采样问题