ADC_InitTypeDef ADC_InitStructure;
ADC_CommonInitTypeDef ADC_CommonInitStructure;
ADC_DeInit();
/* ADC Common Init */
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
/* ADC1 Init */
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;
ADC_InitStructure.ADC_ScanConvMode =DISABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfConversion = 1;
ADC_Init(ADC1, &ADC_InitStructure);
//ADC_RegularChannelConfig(ADC1, ADC_Channel_12, 1, ADC_SampleTime_3Cycles);
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
/*使能ADC1中断*/
ADC_ITConfig(ADC1,ADC_IT_EOC,ENABLE);
/*启动ADC1转换*/
//ADC_SoftwareStartConv(ADC1);
unsigned char loopi;
//设置指定ADC的规则组通道,设置它们的转化顺序和采样时间
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 1, ADC_SampleTime_480Cycles);//ADC1,ADC通道3,规则采样顺序值为1,采样时间为239.5周期
delayms(100);
ADC_SoftwareStartConv(ADC1); //使能指定的ADC1的软件转换启动功能
advalue=0x00;
for(loopi=0x00;loopi<128;loopi++)
{
while(!ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC ));//等待转换结束
adtemp=ADC_GetConversionValue(ADC1);
advalue=advalue+adtemp; //返回最近一次ADC1规则组的转换结果
ADC_SoftwareStartConv(ADC1);
}
adref=advalue>>7;
}
这样的转换结果adref在0X8070左右一直这样
|