|
#define ADC_BUFF_SIZE 256
uint32_t adc_buff[ADC_BUFF_SIZE];
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) {
// 应用移动平均滤波
static uint32_t filter_buff[4][8];
for(int i=0; i<4; i++){
filter_buff[i][7] = adc_buff[i]; // 更新缓冲区
uint32_t sum = 0;
for(int j=0; j<8; j++) sum += filter_buff[i][j];
current_values[i] = sum >> 3; // 右移3位相当于除以8
}
}
|
|