STM32 HAL库ADC多通道DMA数据错位,最常见原因是DMA传输宽度与ADC数据宽度不匹配、通道顺序与DMA缓冲区索引不一致、以及ADC校准/启动顺序问题。排查步骤:1) 确认ADC配置为Scan模式且Continuous或单次触发正确,Rank顺序与预期通道顺序一致;2) 检查DMA配置:外设地址为&ADC->DR,内存地址为缓冲区,PeriphDataAlignment与MemDataAlignment均设为HALFWORD(16位),Mode为Circular或Normal按需;3) 确认DMA通道与ADC对应(如ADC1对应DMA1_Channel1);4) 在HAL_ADC_Start_DMA前调用HAL_ADCEx_Calibration_Start,并确保ADC使能顺序正确;5) 用调试器观察缓冲区,若数据整体偏移一位,多为DMA启动前ADC已产生一次转换或Rank配置错误;6) 检查是否在DMA完成回调中误改缓冲区指针。修复:统一16位对齐、按Rank顺序映射缓冲区索引、启动前清空DMA标志并重新校准。