先确认ADC规则组序列是否真正配置了多个通道:HAL_ADC_ConfigChannel()每次调用会覆盖Rank设置,必须按Rank 1..N依次调用并保证sConfig.Rank递增、sConfig.Channel对应正确;若只调用一次则只转换一个通道。其次检查DMA传输长度:hdma_adc.Init.Mode必须为DMA_CIRCULAR(或NORMAL但长度足够),Init.PeriphDataAlignment=WORD、MemDataAlignment=WORD,Init.PeriphInc=DISABLE、MemInc=ENABLE;关键是HAL_ADC_Start_DMA(&hadc, buf, N),第三个参数N必须是规则组通道总数,而不是1或缓冲区字节数。再查ADC_Init.ScanConvMode=ENABLE、ContinuousConvMode=ENABLE、DiscontinuousConvMode=DISABLE、NbrOfConversion=N。最后确认DMA通道与ADC匹配、NVIC使能、缓冲区为uint32_t数组且长度≥N,并用调试器观察DMA NDTR是否递减N次。