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采集

调试结果如下:

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM