首先用stm32cube导出ADC初始化程序。
然后在此基础上将单通道改为4通道。在此基础上更改了程序,如下:
void MX_ADC1_Init(ADC_HandleTypeDef *hadc1,char index)
{
ADC_MultiModeTypeDef multimode;
ADC_ChannelConfTypeDef sConfig;
/**Common config
*/
hadc1->Instance = ADC1;
hadc1->Init.ClockPrescaler = ADC_CLOCK_ASYNC_DIV1;
hadc1->Init.Resolution = ADC_RESOLUTION_12B;
hadc1->Init.ScanConvMode = ADC_SCAN_DISABLE;
hadc1->Init.ContinuousConvMode = DISABLE;
hadc1->Init.DiscontinuousConvMode = DISABLE;
hadc1->Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
hadc1->Init.ExternalTrigConv = ADC_SOFTWARE_START;
hadc1->Init.DataAlign = ADC_DATAALIGN_RIGHT;
hadc1->Init.NbrOfConversion = 1;
hadc1->Init.DMAContinuousRequests = DISABLE;
hadc1->Init.EOCSelection = ADC_EOC_SINGLE_CONV;
hadc1->Init.LowPowerAutoWait = DISABLE;
hadc1->Init.Overrun = ADC_OVR_DATA_OVERWRITTEN;
if (HAL_ADC_Init(hadc1) != HAL_OK)
{
//_Error_Handler(__FILE__, __LINE__);
}
/**Configure the ADC multi-mode
*/
multimode.Mode = ADC_MODE_INDEPENDENT;
if (HAL_ADCEx_MultiModeConfigChannel(hadc1, &multimode) != HA