单通道采样,精度2的12次方,不采用DMA,AC采样频率是16MHZ,转换周期4Cycles。
void ADC_Config(u8 ADC_Channel)
{
ADC_InitTypeDef ADC_InitStructure; //
RCC_HSICmd(ENABLE); //
while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE); //
ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b; //
ADC_InitStructure.ADC_ScanConvMode = DISABLE; //
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; //
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_0, 1 ,ADC_SampleTime_4Cycles);//
ADC_DelaySelectionConfig(ADC1, ADC_DelayLength_Freeze);
/* Enable ADC1 Power Down during Delay */
ADC_PowerDownCmd(ADC1, ADC_PowerDown_Idle_Delay, ENABLE); //
ADC_Cmd(ADC1,ENABLE); //
while (ADC_GetFlagStatus(ADC1, ADC_FLAG_ADONS) == RESET)
{
}
}
|