DMA ADC采样时输出全为0,无法正常输出,HAL库函数实现方式,HAL库踩过的坑

DMA ADC采样时输出全为0,无法正常输出,HAL库函数实现方式,HAL库踩过的坑

HAL软件配置后加入
//----------------------ADC DMA Init---------------------------------
HAL_ADC_Start_DMA(&hadc1, (uint32_t*)ADC1_RESULT,13);
HAL_ADC_Start_DMA(&hadc3, (uint32_t*)ADC3_RESULT,1);
定义的数字中数据全为0,未实现DMA输出:
DMA

经过分析发现,DMA初始化与ADC初始化存在先后顺序的问题,DMA初始化必须放在ADC初始化函数之前,
先初始化DMA的配置参数,主要是中断参数,再再ADC采样模块中,初始化DMA通道等相关信息,这样才能够正常输出。
在这里插入图片描述

调整DMA初始化位置,将DMA初始化放在ADC初始化之前,结果输出数据正常。
在这里插入图片描述

问题2 DMA采样通道数据发生移位串扰的情况,数据从数组0到数组12依次传递;

猜你喜欢

转载自blog.csdn.net/AQRSXIAO/article/details/131589559
DMA