advanced-analog-to-digital-conversion-stm32-adc-scan-mode

/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include<stdio.h>
#include<string.h>

/* Private variables ---------------------------------------------------------*/
ADC_HandleTypeDef hadc1;
DMA_HandleTypeDef hdma_adc1;
UART_HandleTypeDef huart1;

/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_ADC1_Init(void);
static void MX_USART1_UART_Init(void);

/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
char MSG[50];
uint16_t ADC_VAL[2];
volatile int adcConvertionComplete=0;
void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
{
adcConvertionComplete=1;
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 0);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, 1);
}
/* USER CODE END 0 */


int main(void)
{

HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_DMA_Init();
MX_ADC1_Init();
MX_USART1_UART_Init();

while (1)
   {
    HAL_ADC_Start_DMA(&hadc1, (uint32_t*)ADC_VAL, 2);
    while(adcConvertionComplete==0){}
    adcConvertionComplete==0;
    snprintf(MSG,sizeof(MSG),"ADC SCAN Channels =  %d\n\r",ADC_VAL[0]);
    HAL_UART_Transmit(&huart1, MSG, strlen(MSG), HAL_MAX_DELAY);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, 0);
    HAL_Delay(1000);
   }

}