阅读背景:

stm32 ad转换

来源:互联网 
采集多个数据求平均值 u16 Get_Adc(u8 ch) { //设置指定ADC的规则组通道,一个序列,采样时间 ADC_RegularChannelConfig(ADC1, ch, 1, 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; } 采集完后的数据处理 float temp; //注意是float数据类型 u16 adcx; adcx=Get_Adc_Average(ADC_Channel_1,10); //的到一个u16 的值 temp=(float)adcx*(3.3/4096); //强制转换 并且的实际电压值 adcx=temp; //得到整数部分 temp-=adcx; temp*=1000; //得到小数部分 采集多个数据求平均值 u16 Get_Adc(u8 ch) { //设置指定ADC的规则组通道,一



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: