ADC2_Handle.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; /* Synchronous clock mode, input ADC clock divided by 2*/
ADC2_Handle.Init.Resolution = ADC_RESOLUTION_12B; /* 12-bit resolution for converted data */
ADC2_Handle.Init.DataAlign = ADC_DATAALIGN_RIGHT; /* Right-alignment for converted data */
ADC2_Handle.Init.ScanConvMode = ADC_SCAN_ENABLE; /* Sequencer disabled (ADC conversion on only 1 channel: channel set on rank 1) */
ADC2_Handle.Init.EOCSelection = ADC_EOC_SINGLE_CONV; /* EOC flag picked-up to indicate conversion end */
ADC2_Handle.Init.LowPowerAutoWait = DISABLE; /* Auto-delayed conversion feature disabled */
ADC2_Handle.Init.ContinuousConvMode = ENABLE; /* Continuous mode enabled (automatic conversion restart after each conversion) */
ADC2_Handle.Init.NbrOfConversion = 3; /* Parameter discarded because sequencer is disabled */
ADC2_Handle.Init.DiscontinuousConvMode = DISABLE; /* Parameter discarded because sequencer is disabled */
ADC2_Handle.Init.NbrOfDiscConversion = 1; /* Parameter discarded because sequencer is disabled */
//ADC2_Handle.Init.ExternalTrigConv = ADC_SOFTWARE_START; /* Software start to trig the 1st conversion manually, without external event */
//ADC2_Handle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because software trigger chosen */
ADC2_Handle.Init.DMAContinuousRequests = ENABLE; /* ADC DMA continuous request to match with DMA circular mode */
ADC2_Handle.Init.Overrun = ADC_OVR_DATA_OVERWRITTEN; /* DR register is overwritten with the last conversion result in case of overrun */
HAL_ADC_Init(&ADC2_Handle);
}
//--------------------Configure the ADC2 Channel-----------------------------------
void ADC2_Channel_Config(void)
{
//common config for channel
ADC2_sConfig.SamplingTime = ADC_SAMPLETIME_19CYCLES_5; /* Sampling time (number of clock cycles unit) */
ADC2_sConfig.SingleDiff = ADC_SINGLE_ENDED; /* Single-ended input channel */
ADC2_sConfig.OffsetNumber = ADC_OFFSET_NONE; /* No offset subtraction */
ADC2_sConfig.Offset = 0;
ADC2_sConfig.Channel = ADC_CHANNEL_1; /* Sampled channel number */
ADC2_sConfig.Rank = ADC_REGULAR_RANK_1; /* Rank of sampled channel number ADCx_CHANNEL */
HAL_ADC_ConfigChannel(&ADC2_Handle, &ADC2_sConfig);