首通道错位通常不是DMA本身的问题,而是规则组扫描+DMA循环模式下,ADC启动时刻与DMA搬运/软件读取缓冲之间存在竞争:若在HAL_ADC_Start_DMA之后才配置通道顺序、或DMA缓冲区首地址未对齐、或EOC中断与DMA半满/全满回调里读取了尚未完成的转换,就会表现为第一通道数据被后一通道覆盖或偏移一位。实操上:1) 确保CubeMX中规则组Rank顺序与缓冲区索引严格一致,DMA设为循环、半字/字宽度匹配;2) 启动前先HAL_ADCEx_Calibration_Start,再HAL_ADC_Start_DMA,且不要在转换中途改Rank;3) 用HAL_ADC_ConvCpltCallback统一读取,避免主循环与DMA竞争;4) 若需高优先级同步采样,把关键通道放注入组,用HAL_ADCEx_InjectedStart_IT触发,规则组只做低速多通道扫描,注入结果从JDRx读取,二者互不干扰,可规避首通道错位。