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