本例程是用HAL库读取两个通道的ADC值再滤波

//input your code:
#define set_filtering_times 50        //滤波次数
unsigned long adc_filtering[2]={0,0};//ADC缓存

for(a=0;a<2;a++)                     //HAL读取两个通道
{
    HAL_ADC_Start(&hadc);
    while(HAL_ADC_PollForConversion(&hadc,0xffff)!=HAL_OK);
    adc_filtering[a]+=HAL_ADC_GetValue(&hadc); //读到的数据加给缓存                
}
HAL_ADC_Stop(&hadc);    
            
filtering_times+=1;                              //累积次数
if(filtering_times==set_filtering_times)         //次数够了以后 把缓存除次数就是ADC值
{
    filtering_times=0;
    adc_value[0]=adc_filtering[0]/set_filtering_times;
    adc_filtering[0]=0;
    adc_value[1]=adc_filtering[1]/set_filtering_times;
    adc_filtering[1]=0;
                
    
}
最后修改:2020 年 10 月 24 日
声明:无闻风博客|版权所有,违者必究|如未注明,均为原创| 转载:转载请注明原文链接