RCC_ADCCLKConfig(RCC_PCLK2_Div8); RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC RCC_APB2Periph_ADC1, ENABLE); RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5| GPIO_Pin_6; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure);
ADC_DeInit(ADC1); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //ADC1 configuration ADC_InitStructure.ADC_ScanConvMode = ENABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T4_CC4; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 6; ADC_Init(ADC1, &ADC_InitStructure); for (cnt = 0; cnt < 6; cnt++) { ADC_RegularChannelConfig(ADC1, Adc_ChallArr[cnt], cnt+1, ADC_SampleTime_13Cycles5); //ADC1 regular channelx configuration } // ADC int dma and trugle source enable ------------------------------// /* Enable ADC1 */ ADC_Cmd(ADC1, ENABLE); // Enable ADC1 DMA ADC_ExternalTrigConvCmd(ADC1, ENABLE); //Enable ADC1 external trigger // Enable ADC1 //ADC Calibration model------------------------------------------------// ADC_ResetCalibration(ADC1); // Enable ADC1 reset calibaration register while(ADC_GetResetCalibrationStatus(ADC1)); //Check the end of ADC1 reset calibration register ADC_StartCalibration(ADC1); //tart ADC1 calibaration while(ADC_GetCalibrationStatus(ADC1)); //Check the end of ADC1 calibration
|