初级会员

- 积分
- 72
- 金钱
- 72
- 注册时间
- 2015-4-2
- 在线时间
- 0 小时
|
5金钱
void Adc_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC| RCC_APB2Periph_ADC1 | RCC_APB2Periph_AFIO, ENABLE );
RCC_ADCCLKConfig(RCC_PCLK2_Div6); //72M/6=12,ADC×??ó?±??????????14M
//PA0--ADC_IN0   A1--ADC_IN1   A2--ADC_IN2   A3--ADC_IN3   A4--ADC_IN4   A5--ADC_IN5   A6--ADC_IN6   A7--ADC_IN7
//PB0--ADC_IN8   B1--ADC_IN9   C0--ADC_IN10   C1--ADC_IN11 PC2--ADC_IN12 PC3--ADC_IN13 PC4--ADC_IN14 PC5--ADC_IN15
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_Init(GPIOC, &GPIO_InitStructure);
//------------------------------------ADC设置--------------------------------------------------------
ADC_DeInit(ADC1); //
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; //
ADC_InitStructure.ADC_ScanConvMode =ENABLE; //
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; /
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; //
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; //
ADC_InitStructure.ADC_NbrOfChannel = 2; //
ADC_Init(ADC1, &ADC_InitStructure); //
ADC_RegularChannelConfig(ADC1, ADC_Channel_10, 1, ADC_SampleTime_239Cycles5 );
ADC_RegularChannelConfig(ADC1, ADC_Channel_11, 2, ADC_SampleTime_239Cycles5 );
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
NVIC_InitStructure.NVIC_IRQChannel = ADC1_2_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
NVIC_Init(&NVIC_InitStructure);
ADC_DMACmd(ADC1, ENABLE); //
ADC_Cmd(ADC1, ENABLE); //
ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);//
ADC_ResetCalibration(ADC1); //
while(ADC_GetResetCalibrationStatus(ADC1)); //
ADC_StartCalibration(ADC1); //
while(ADC_GetCalibrationStatus(ADC1)); //
ADC_SoftwareStartConvCmd(ADC1, ENABLE); //
}
void ADC1_2_IRQHandler(void)
{
ADC_ClearITPendingBit(ADC1, ADC_IT_EOC);
}
|
|