改写这段代码:u16 Get_Adc(u8 ch) { //设置指定ADC的规则组通道,一个序列,采样时间 ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期 ADC_RegularChannelConfig(ADC1, ch, 2, ADC_SampleTime_239Cycles5 ); //ADC1,ADC通道,采样时间为239.5周期 ADC_SoftwareStartConvCmd(ADC1, ENABLE); //使能指定的ADC1的软件转换启动功能 while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC )); //等待转换结束 return ADC_GetConversionValue(ADC1); //返回最近一次ADC1规则组的转换结果 } u16 Get_Adc_Average(u8 ch,u8 times) { u32 temp_val=0; u8 t; for(t=0;t<times;t++) { temp_val+=Get_Adc(ch); delay_ms(5); } return temp_val/times; }
时间: 2024-04-08 16:31:34 浏览: 131
uint16_t Get_Adc(uint8_t ch) {
// 设置指定ADC的规则组通道,一个序列,采样时间
ADC_RegularChannelConfig(ADC1, ch, 1, ADC_SampleTime_239Cycles5); // ADC1, ADC channel, sampling time of 239.5 cycles
ADC_RegularChannelConfig(ADC1, ch, 2, ADC_SampleTime_239Cycles5); // ADC1, ADC channel, sampling time of 239.5 cycles
ADC_SoftwareStartConvCmd(ADC1, ENABLE); // 使能指定的ADC1的软件转换启动功能
while (!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC)); // 等待转换结束
return ADC_GetConversionValue(ADC1); // 返回最近一次ADC1规则组的转换结果
}
uint16_t Get_Adc_Average(uint8_t ch, uint8_t times) {
uint32_t temp_val = 0;
uint8_t t;
for (t = 0; t < times; t++) {
temp_val += Get_Adc(ch);
delay_ms(5);
}
return temp_val / times;
}
阅读全文