滤波器伺候
另外你的那条长电线也是罪魁祸首,电线上感应到的干扰有一部分是在1kHz以下的,这样的话怎么都没法滤掉。
MMA7260-低通-导线(有干扰)-高阻输入,并没有对导线感应到的干扰进行滤波。
最简单的方法:加入一个数字低通滤波器。
首先STM32的ADC采样率要设高一些,这样可以更好的发挥ADC的性能
STM32的ADC采样周期最多为239.5Cycles,如果ADC时钟设为APB2 /8,APB2 = 36MHz ,完全能获得5k的采样率。
不要随便用滑动平均,会抹掉一些特定频率上的信号