STM32CubeIDE 多通道ADC DMA转换

1、ADC1参数设置如下,本历程开启了9路ADC通道

2、设置DMA

3、设定DMA数据宽度,把数据宽度有默认的Half Word改为Word,否则两路的ADC值会合并成一个数据

 

 采集代码如下:

/* USER CODE BEGIN Header_StartTaskCheckTemp */
uint32_t     ADC_DegitalValue[20];//定义ADC转换结果存放的数组
/**
* @brief Function implementing the myTaskCheckTemp thread.
* @param argument: Not used
* @retval None
*/
/* USER CODE END Header_StartTaskCheckTemp */
void StartTaskCheckTemp(void const * argument)
{
  /* USER CODE BEGIN StartTaskCheckTemp */
  /* Infinite loop */
  for(;;)
  {
    HAL_ADC_Start_DMA(&hadc1,ADC_DegitalValue,9);//9路ADC转换完后,DMA自动把对应的通道值放入该ADC_DegitalValue数组内
    osDelay(10);
  }
  /* USER CODE END StartTaskCheckTemp */
}
DMA_ADC采集

调试结果如下:

原文地址:https://www.cnblogs.com/lizhiqiang0204/p/13427191.html