在使用Cubemx编程STM32时,若同时开启ADC和DMA,则软件自动生成的代码如下
可以看到,ADC初始化在DMA前面,这样一来,我们会发现从DMA提取的数据错误的,原因就在它们两个初始化函数的先后顺序是有讲究的。
正确的顺序应该是DMA初始化在前,ADC初始化在后,上述代码更改后如下:
经上述改正后,代码功能能正常实现。
可以看到,ADC初始化在DMA前面,这样一来,我们会发现从DMA提取的数据错误的,原因就在它们两个初始化函数的先后顺序是有讲究的。
正确的顺序应该是DMA初始化在前,ADC初始化在后,上述代码更改后如下:
经上述改正后,代码功能能正常实现。