[讨论] stm32 ADC 中断速度出现的速率 只有12k/秒

vincent.liu   2021-11-8 01:05 楼主

这个12k的话,应该是采样率,在adc初始化函数里面,我调了那个分频系数,大概在6和8之间来调,还有周期,周期是239.5和71,还有11,23这几个参数来回的调,后来调出来的结果最高也只是不会超过14k,最低的话是8k,就是这个采样的始终上不去。没有开dma,统计的方法是在a dc中断里面设了一个变量来对中断,每一次中断的时候加一,然后用了另外一一个定时器,每一秒进一次中断,这个定时器每一秒进中断的时候也有一个变量来统计这个秒数,然后进行判断,是奇数的时候,我们将adc统计的那个变量清零,是偶数的时候,萌就这样统计a dc的变量,显示oLED上面,然后就得到了上面的那个结果,最高采样率不会超过14k,不知道为什么呢?

回复评论 (6)

ADC的时钟频率怎么设置的呢

ADC的速度由2个参数决定,即采样时间和转换时间之和

或者检查一下外围电路

 

点赞  2021-11-8 07:32

『ADC 中断速度出现的速率 只有12k/秒』

ADC完成一次转换,才会产生一次中断。

点赞  2021-11-8 11:35

ADC的时钟频率?先仅仅测试一下转换的速率,没问题后再用中断方式测试一下!

点赞  2021-11-8 11:53

单片机主频是多少?如果不开DMA每次转换完成都要重新开启ADC,这些时间都要计入,主频不高很难做到高速采集。

点赞  2021-11-8 12:03

程序问题,显示部分太多delay

点赞  2021-11-8 17:16

发现主要原因是主频RCC,程序原因也占一部分。程序增加RCC_INIT()对整个程序以及ADC分频进行设定后,速度马上有提升。接着继续调高采样率,结果直接黑屏,开DMA后恢复正常。可调到最高采样率,即主频72M,6分频,1u采样周期。如果采用ADC中断,在中断程序里不要写过长的程序,否则拖慢采样率。最好只在中断里赋值后退出,在定时器中断里进行详细操作。

点赞  2021-11-16 03:51
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复