你要检查一下这个ADC源的电压稳么?不稳的话你怎么调都会有跳动。
如果电压稳,你采集的还有跳动,检查一下板子上这个走线是否有大电流干扰吧。
程序里面搞。判断在5-10之间,全部搞成10,呵呵
还有就是多次采样取平均,这样波动小点。
平滑滤波什么的应该都可以。
可能原因:1. 基准不稳,用的是VDD可能;2. 输入源内阻比较大;3.其他原因。
你所谓的交流电压是指什么?暂定就是指平常我们使用的220V交流电吧。
STM32供电: 一般是由电源适配器提供的5V直流电源供电,这个供电是经过变压器等电路将交流220V变成隔离底线的5V直流电,所以STM32的地是与交流电AC220V隔开的,而且是直流的。
共地问题:如果STM32需要采集某个信号,先要使这个信号的地与自己的地等电位,或者就是短接,在这个共同的地上,被采样信号的幅度有所限制(一般是0~3.3V),才能正确采样并且不会损坏ADC。
你的问题解答: 如果是要采集某个交流电,则需要将这个信号先进行调理,变成直流信号。比如用一个电阻在交流电上进行采样,获得一个小范围的电压(比如-1.5V~+1.5V),再将这个电压叠加到一个基准电压上(比如3.0V或3.3V),获得一个在0~3V之间变化的直流信号;这时需要考虑这个信号与STM32共地问题,可以考虑用线性光隔实现信号的光电隔离传递,最终获得相同的、共地的信号,接ADC进行采集。
其他的办法有很多,比如可以通过互感型电感/变压器获得隔离的采样信号调理成直流后再入ADC
1,ADC时钟是设为9M 2,ADC总转换时间=采样时间+12.5个ADC时钟周期(信号量转换时间),而采样时间由寄存器设定,最低1.5ADC周期,最大239.5ADC周期,也就是你程序中设置的55.5个采样周期。所以ADC一次采样的总采样时间是55.5+12.5=68个ADC周期,也就是68/9 us 3,所以,总采样时间最快就是1.5+12.5个ADC周期,最慢就是239.5+12.5个ADC周期。至于采样速率,是跟你的程序是有关的,比如ADC采样时间设定为最快,但你可以设定1s采一次,那采样速率仍是1;再比如你开启扫描模式,跟单次转换又不一样
本文标签:stm32的adc采集电池电压不准