ADC Continuous Mode with DMA

STM32IDECube/STM32F446RE

1. ADC Continuos Mode ohne DMA

Achtung! Für Continuous Conversion Mode muss EOC
(end of conversion) Flag auf "end of all Conversions" gestellt werden, sonst startet nur die erste Konvertierung.
 

  char buf[20]={0};

  HAL_ADC_Start(&hadc1);

  while (1)

  {

         sprintf(buf,"ADC=%d\n\r",(uint8_t)ADC1->DR);

 

         HAL_UART_Transmit(&huart2, (uint8_t*)buf, strlen(buf),  10);

 

   HAL_Delay(300);

  }

}

1. ADC Continuos Mode mit  DMA

 /* USER CODE BEGIN 2 */

 

  char buf[20]={0};

 

  uint8_t values[10]={0};

  /* USER CODE END 2 */

 

  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  //HAL_ADC_Start(&hadc1);

  HAL_ADC_Start_DMA(&hadc1, (uint32_t*)values, 10);

 

  HAL_DMA_Start_IT(&hdma_adc1, (uint32_t)&ADC1->DR, (uint32_t)values, 2);

  while (1)

  {

                 sprintf(buf,"ADC=%d\n\r",(uint8_t)ADC1->DR);

                 HAL_Delay(300);

 

                 HAL_UART_Transmit(&huart2, (uint8_t*)buf, strlen(buf),  10);

    /* USER CODE END WHILE */

 

    /* USER CODE BEGIN 3 */

  }

  /* USER CODE END 3 */

}