先确认ADC配置为Scan模式且DMA为Circular、外设到内存、半字宽、内存地址递增;关键排查点:1) 检查DMA缓冲区长度是否等于通道数,HAL_ADC_Start_DMA的Length参数必须是转换次数而非字节数;2) 确认Rank顺序与缓冲区索引对应,Rank1对应buf[0],若顺序错乱通常是Rank配置与预期不符;3) 检查是否在DMA传输完成回调中读取数据,避免转换中途读取;4) 若使用CubeMX生成代码,确认各通道Rank值连续且无重复;5) 采样时间过短会导致通道间串扰,适当增加采样周期。修复建议:用HAL_ADC_Start_DMA(&hadc, buf, N),在HAL_ADC_ConvCpltCallback中处理,并用调试器观察buf内容验证Rank映射。若仍错乱,检查ADC时钟是否超频及DMA优先级配置。