#include int16_t Calibrattion_Val = 0; //ADC对应GPIO初始化配置以及ADC初始化配置 void ADC_all_Init(void) { ADC_InitTypeDef ADC_InitStructure = {0}; GPIO_InitTypeDef GPIO_InitStructure = {0}; RCC_PB2PeriphClockCmd(RCC_PB2Periph_GPIOA, ENABLE); RCC_PB2PeriphClockCmd(RCC_PB2Periph_ADC1, ENABLE); RCC_ADCCLKConfig(RCC_PCLK2_Div2); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7; //PA1~7对应ADC通道1~7 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_Init(GPIOA, &GPIO_InitStructure); ADC_DeInit(ADC1); Calibrattion_Val = Get_CalibrationValue(ADC1); printf("Calibrattion_Val : %d\n", Calibrattion_Val); ADC_InitStructure.ADC_Mode = ADC_Mode_Independent; ADC_InitStructure.ADC_ScanConvMode = DISABLE; ADC_InitStructure.ADC_ContinuousConvMode = DISABLE; ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None; ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; ADC_InitStructure.ADC_NbrOfChannel = 1; ADC_Init(ADC1, &ADC_InitStructure); ADC_Cmd(ADC1, ENABLE); ADC_FIFO_Cmd(ADC1, ENABLE); ADC_BufferCmd(ADC1, DISABLE); //disable buffer ADC_ResetCalibration(ADC1); while(ADC_GetResetCalibrationStatus(ADC1)); ADC_StartCalibration(ADC1); while(ADC_GetCalibrationStatus(ADC1)); RCC_ADCCLKConfig(RCC_HCLK_ADC); ADC_DutyDelayCmd(ADC1,ENABLE); ADC_Sample_ModeConfig(ADC1,ADC_Sample_Over_1M_Mode); }