我想實現stm32f303發現的ADC1,ADC2和兩個DMA ADC通道的雙常規同時模式。在雙常規同時模式下使用兩個DMA ADC通道STM32
在CubeMX例子:
兩個DMA通道(一個用於ADC主,一個用於ADC從站)的用法是 也是可能的:這是在高 ADC轉換速率和應用的情況下建議的配置使用其他DMA頻道 集中。
根據AN4195
當使用DMA,有兩種可能的情況:•使用兩個 獨立的DMA通道用於主站和從站的。每個ADC(在這種情況下, MDMA [1:0])必須保持清零狀態。第一個DMA通道用於 從ADC_DR讀取主ADC轉換後的數據,並在主ADC的每個EOC事件中生成DMA請求 。第二個DMA通道用於讀取ADC_DR的從機ADC轉換數據,並且在從機ADC的每個EOC事件中生成DMA請求。
對於1路碼:
HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);
HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);
HAL_ADC_Start(&hadc2);
HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t*)buffer, 3);
但是我們怎麼能運行2個通道? HAL_ADCEx_MultiModeStart_DMA是1路,我能理解
喜歡的東西的獨立模式不工作
HAL_ADCEx_Calibration_Start(&hadc1, ADC_SINGLE_ENDED);
HAL_ADCEx_Calibration_Start(&hadc2, ADC_SINGLE_ENDED);
HAL_ADC_Start(&hadc2);
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)ADC1_data,sizeof(ADC1_data)/sizeof(ADC1_data[0]));
HAL_ADC_Start_DMA(&hadc2,(uint32_t*)ADC2_data,sizeof(ADC2_data)/sizeof(ADC2_data[0]));
來自CubeMx的這個引用是definitelly錯誤的。總線矩陣的10M請求如何不如5M? –