嵌入式技术论坛
直播中

建立建利12

8年用户 1332经验值
擅长:可编程逻辑 嵌入式技术
私信 关注
[问答]

stm32F407定时器触发ADC采样600个数据,到达极限频率会出错怎么解决



AdcConEnd是DMA中断标志位
定时器1触发频率小于1M时,可以正常采集打印数据
但是一旦频率过高,就会卡在while(!AdcConEnd)这里
然后我将这块注释掉,打印出来的数据就会出现第一次采集只有第一个有数据,后面全都没采集上,可能这也是为什么会卡住的原因把,。但是再让AD采集,之后每轮采集都不会出错。

回帖(3)

nhcp

2022-5-10 09:30:04
第一步,先降低你说的定时器时间,用长时间,足够的时间执行这句采样。
第二步,先清理 adc_buff ,然后启动 adc 采样。输出采样结果。
第三步,逐步减少定时器时间,每次清理 adc_buff 后再采样,输出结果,看看时间降低到多少就开始出错了
不过吧,你既然把采样结果通过串口打印出来了字符,这个输出的过程耗时挺长了,你那个定时器够呛能达到 1ms 以下。
举报

新疆切糕

2022-5-10 09:30:24
初始化ADC配置,有个采样速率,修改下试试呢
举报

绝代双骄

2022-5-10 09:30:31
可以尝试一下使用DMA循环采样,然后定时取adc_buff里面的值
举报

更多回帖

发帖
×
20
完善资料,
赚取积分