HomeKit 发表于 2025-5-7 23:14

DMA处理 ADC时 调用两次

使用 STM32G474 和 STM32CubeIDE,以及 HAL。用 TIM3触发的 3 个 ADC 模块同时启动。在 DMAx_Channely_IRQHandler 函数中读取结果,在 GPIO 中进行了切换。我有 3 个DMAx_Channely_IRQHandler功能,每个 ADC 一个所有输出都显示 DMAx_Channely_IRQHandler 函数被调用了两次。

flycamelaaa 发表于 2025-5-8 16:28

只启用需要的中断类型。

stormwind123 发表于 2025-5-8 16:29

检查中断优先级设置有没有冲突。

probedog 发表于 2025-5-8 16:30

在每次传输完成后,DMA 通道可能未正确停止或重新启动,导致重复触发中断。

classroom 发表于 2025-5-8 16:30

如果 ADC 配置为连续转换模式,可能会导致 DMA 传输多次触发。

powerantone 发表于 2025-5-8 18:00

缓冲区大小与 ADC 采样点数不匹配?
页: [1]
查看完整版本: DMA处理 ADC时 调用两次