ADC采样值跳变的7种修复方案
根本原因排查表:现象大概率原因检测工具
周期性波动开关电源纹波示波器FFT功能
随机跳变参考电压不稳定高精度万用表
温度相关性信号源阻抗过高阻抗分析仪
硬件改造方案:图表
代码
下载
ADC输入
10K电阻
0.1μF电容接地
运放电压跟随器
软件滤波代码:c
复制
下载
#define MEDIAN_FILTER_SIZE 7uint16_t adc_median_filter(void) { static uint16_t samples[MEDIAN_FILTER_SIZE; // 循环采样 for(int i=0; i<MEDIAN_FILTER_SIZE-1; i++){ samples[i = samples[i+1; } samples[MEDIAN_FILTER_SIZE-1 = HAL_ADC_GetValue(&hadc); // 中值计算 uint16_t temp[MEDIAN_FILTER_SIZE; memcpy(temp, samples, sizeof(temp)); qsort(temp, MEDIAN_FILTER_SIZE, sizeof(uint16_t), compare_uint16); return temp[MEDIAN_FILTER_SIZE/2;}
页:
[1]