#include "adcs.h" uint32_t adc_array[1000]; uint32_t adc_sum = 0; uint32_t ADC_ConvertedValue = 0;//ADC数据 uint16_t adc_value=0; //ADC采样 float adc_vol=0.000f; //ADC采样后转换的电压 int adc_cnt = 0; void adcs_init(void) { } void adc_sample(void) { adc_value = HAL_ADC_GetValue(&hadc1); //读取ADC转换数据 adc_vol = ((double)adc_value/4096)*3300; //转换为电压 HAL_ADC_Start(&hadc1); //启动ADC单次转换 adc_array[adc_cnt] = adc_vol; adc_sum += adc_array[adc_cnt]; adc_cnt++; //平均值滤波,1000 if(adc_cnt > 999) { ADC_ConvertedValue = adc_sum / 1000; adc_sum = 0; adc_cnt = 0; } //ADC_ConvertedValue = adc_vol; }