STM32 HAL库ADC多通道DMA扫描只转换一次就停,最常见原因是DMA被配置成Normal模式而非Circular模式。扫描模式下ADC每完成一轮序列会置EOC,HAL的ADC_DMAConvCpltCallback在DMA传输完成中断里调用HAL_ADC_Stop_DMA,若DMA为Normal,传输计数到0后不再重装,ADC的DMA请求无人响应,转换自然停止。排查:1)确认hdma_adc.Init.Mode = DMA_CIRCULAR;2)确认ADC_Init.ScanConvMode = ENABLE、ContinuousConvMode = ENABLE(或每次软件触发);3)检查是否在回调里误调Stop_DMA;4)确认EOC中断未被误使能且未在EOC中断中清DMA。若必须Normal模式,则需在DMA完成回调中重新HAL_ADC_Start_DMA,但会丢采样点,不推荐。另注意HAL库版本差异:老版本在DMA完成回调中会停止ADC,新版本已改为仅停止DMA。建议用Circular DMA + Continuous Conversion,并用__HAL_DMA_GET_COUNTER监控传输进度。