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 */ }
调试结果如下: