我在扫描模式下的
STM32G4 上设置了 ADC1,其中转换的开始由定时器启动。我还将 DMA 设置为循环模式并对其进行配置,以便每次扫描转换完成时将 ADC 结果传输到一个数组。CubeMX 生成的代码在 MX_DMA_Init() 之前调用 MX_ADC1_Init()。按照这个顺序,DMA 不会更新我的数组值。然而,当我更改初始化顺序以便 MX_DMA_Init() 被称为 beore MX_ADC1_Init() 时,一切似乎都工作正常。我简要地查看了代码,但无法弄清楚为什么初始化顺序很重要。这也是有问题的,因为每次使用 CubeMX 重新生成代码时,我都必须手动更改初始化顺序。