int sampling ()//采样函数
{
uint32_t temp = 0, temp1 = 0, t = 0;
uint16_t Conver_voltage_value = 0;
uint8_t i = 0, key = 0;
for(key = 0; key < 10; key++)
{
for(i = 0; i < 128; i++) //过采样次数
{
HAL_ADC_Start(&hadc);
HAL_ADC_PollForConversion(&hadc,10); //等待转换完成,第二个参数表示超时时间,单位ms
if(HAL_IS_BIT_SET(HAL_ADC_GetState(&hadc), HAL_ADC_STATE_REG_EOC))
{
t= HAL_ADC_GetValue(&hadc);
}
temp = t + temp;
t = 0;
}
temp1 = (temp >> 2) + temp1;
temp = 0; //delay_ms(200);
}
temp1 = temp1 / 10; //平滑 数据
Conver_voltage_value = temp1 >> 5;
return Conver_voltage_value;
}
adc 过采样算法
最新推荐文章于 2023-11-30 16:59:24 发布