用ADC采樣內(nèi)部vref,電源3.8V左右。連續(xù)采樣,出來的結(jié)果偶爾會出現(xiàn)800+的數(shù)值,正常是320左右
例如:
adc:320
adc:812
adc:320
adc:320
adc:321
adc:321
adc:321
是什么原因,如何避免?
電源是鋰電池,電壓比較穩(wěn)定,用示波器觀察沒有紋波或者跳變。
采樣程序如下
int adcConvert(unsigned char averageTime){
? ? ADC_DiscModeChannelCountConfig(ADC1, 1);
? ? ADC_RegularChannelConfig(ADC1, 8, 1, ADC_SampleTime_241Cycles);
? ? ADC1->CTLR2|=((uint32_t)0x00e0000);? //SWSTART_SEL
? ? for(unsigned char x=0;x<=averageTime;x++){
? ? ? ? ADC1->CTLR2|=((uint32_t)0x00400000); //start convert;
? ? ? ? while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC));
? ? ? ? int adc;
? ? ? ? adc=ADC_GetConversionValue(ADC1);
? ? ? ? printf("adc:%d\n",adc);;
? ? ? ? result+=adc;
? ? ? ? if(x==0)result=0;
? ? }
? ? return result/averagetime;