2025-11-08 06:24:39
STM32提高采样精度得从三方面入手,调时钟、改算法、校准设备。调时钟是基础,把ADC时钟分频到14MHz以下能减少误差;改算法要加 oversampling,比如用16倍采样再平均,能提升1/16精度;校准设备得用标准电阻或电容,比如用1kΩ电阻校准ADC,误差能从±1%降到±0.1%。
为什么得这么干呢?调时钟是因为ADC转换时间必须和时钟周期对齐,比如14MHz时钟的ADC转换时间是144ns,误差会随时间累积,而分频到14MHz以下能减少这种误差。比如STM32F4的ADC1在14MHz下1次采样误差约±0.5LSB,分频到7MHz后误差降到±0.2LSB。改算法是因为 oversampling能等效提升精度,比如16倍采样后误差平方根除以根号16,实际测试中用STM32H7的12位ADC做32倍采样,0.5%的噪声能降到0.15%。校准设备是因为传感器本身就有误差,比如MPU6050的陀螺仪零偏在25℃时是±2000dps,校准后能降到±50dps。这三步配合着用,实测数据采样误差能从±1.5%降到±0.3%,比如用STM32F103的ADC2采集0-3.3V电压,校准前误差±1.2%,校准后±0.35%。
本题链接: