ADC1的设置如下:


ADC2的设置如下:

ADC2的DMA不用设置
主函数中使用下面语句进行同时采集:
HAL_ADCEx_MultiModeStart_DMA(&hadc1, (uint32_t *)ADC1_2Data,ADC_SIZE);
数组ADC1_2Data需要指定ram地址进行定义,如下:
///ALIGN_32BYTES 把地址进行32字节对齐,避免使用dcache指令出错
ALIGN_32BYTES (static uint16_t ADC1Data[ADC_SIZE]) __attribute__((section(".ARM.__at_0x24000000")));
采集后的数据,ADC1在ADC1_2Data[]的低16bit,ADC2在ADC1_2Data[]的高16bit
文章介绍了如何设置STM32的ADC1和ADC2进行同时数据采集,ADC2的DMA未启用,主函数通过HAL_ADCEx_MultiModeStart_DMA函数启动双ADC采集,数据存储在32字节对齐的ADC1_2Data数组中,其中ADC1数据位于低16位,ADC2数据位于高16位。
6147

被折叠的 条评论
为什么被折叠?



