|
如何解决ADC采样值跳变?
根本原因与解决方案问题根源 检测方法 整改措施
电源噪声(>50mV)示波器FFT分析添加π型滤波电路(10Ω+10μF+0.1μF)
参考电压不稳监控Vref引脚纹波独立REF5025基准源(温漂3ppm/℃)
信号源阻抗过高测量输入阻抗加电压跟随器(OPA2188)
代码级优化: c
复制
下载
// 过采样+中值滤波uint16_t adc_stable_read(void) { uint16_t samples[32; for(int i=0; i<32; i++) { samples[i = HAL_ADC_GetValue(&hadc); HAL_Delay(1); // 间隔采样避开关电源噪声 } qsort(samples, 32, sizeof(uint16_t), compare); return samples[16; // 取中值}
|
|