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 */ }
調試結果如下: