中级会员
 
- 积分
- 399
- 金钱
- 399
- 注册时间
- 2015-5-2
- 在线时间
- 59 小时
|

楼主 |
发表于 2015-11-16 21:48:09
|
显示全部楼层
void ADC1_Init()
{
GPIO_InitTypeDef GPIO_InitStructure;
ADC_InitTypeDef ADC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_ADC1,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;
// GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AIN; //设置为ADC模拟输入
GPIO_Init(GPIOB,&GPIO_InitStructure);
ADC_DeInit(ADC1);
RCC_ADCCLKConfig(RCC_PCLK2_Div6);//设置ADC时钟(ADCCLK))
ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//ADC转换模式为独立
ADC_InitStructure.ADC_ScanConvMode=ENABLE;//开启扫描模式
ADC_InitStructure.ADC_ContinuousConvMode=DISABLE;//禁止连续转换(如果连续的话,就对其他I/O口有干扰)
ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T2_CC2;//开启定时器2触发
ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//右对齐
ADC_InitStructure.ADC_NbrOfChannel=2;//转换通道的数目为2
ADC_Init(ADC1,&ADC_InitStructure);
//设置2通道的采样顺序和采样时间
ADC_RegularChannelConfig(ADC1,ADC_Channel_8,1,ADC_SampleTime_239Cycles5);
ADC_RegularChannelConfig(ADC1,ADC_Channel_9,2,ADC_SampleTime_239Cycles5);
// ADC_RegularChannelConfig(ADC1,ADC_Channel_3,3,ADC_SampleTime_239Cycles5);
// ADC_RegularChannelConfig(ADC1,ADC_Channel_4,4,ADC_SampleTime_239Cycles5);
// ADC_RegularChannelConfig(ADC1,ADC_Channel_5,5,ADC_SampleTime_239Cycles5);
// ADC_RegularChannelConfig(ADC1,ADC_Channel_6,6,ADC_SampleTime_239Cycles5);
ADC_Cmd(ADC1,ENABLE);//使能ADC1
ADC_ResetCalibration(ADC1);//ADC复位校准
while(ADC_GetResetCalibrationStatus(ADC1));//等待复位校准结束
ADC_StartCalibration(ADC1);//ADC校准
while(ADC_GetCalibrationStatus(ADC1));//等待校准结束
ADC_ExternalTrigConvCmd(ADC1, ENABLE); //设置外部触发模式使能
} |
|