keil配置不要选择 Use MicroLIB
ADC示例代码如下:
void adc_init(void)
{
/*MQ2 PC1 模拟输入*/
RCC_ADCCLKConfig(RCC_PCLK2_Div6);//时钟分频
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Mode=ADC_Mode_Independent;//独立工作模式
ADC_InitStructure.ADC_ScanConvMode=ENABLE;//单通道转换,不使用扫描
ADC_InitStructure.ADC_ContinuousConvMode=ENABLE;//连续转换模式
ADC_InitStructure.ADC_DataAlign=ADC_DataAlign_Right;//数据右对齐
ADC_InitStructure.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;//软件触发
ADC_InitStructure.ADC_NbrOfChannel=1;//转换通道个数
ADC_Init(ADC1,&ADC_InitStructure);
//ADC_ITConfig(ADC1, ADC_IT_EOC, ENABLE);
ADC_Cmd(ADC1,ENABLE);//使能ADC1
ADC_RegularChannelConfig(ADC1,ADC_Channel_8,1,ADC_SampleTime_239Cycles5);//设置规则组转换通道
ADC_StartCalibration(ADC1);//复位校准
while(ADC_GetResetCalibrationStatus(ADC1));//等待校准完成
ADC_StartCalibration(ADC1);//再次校准
while(ADC_GetCalibrationStatus(ADC1));
ADC_SoftwareStartConvCmd(ADC1,ENABLE);//使能规则组转换
}
proteus 8.9 仿真配置电网时,因为ADC是模拟输入,所以要将VSSA加入GND端,同时配置VCC为3.3V电压。