Resolved! I believe there is a bug in HAL_ADC_ConfigChannel(). Using the STM32g071, with ADC_SCAN_SEQ_FIXED, ADC_EOC_SINGLE_CONV, and NbrOfConversion == 1, when HAL_ADC_ConfigChannel() is called, it OR's in the new channel number, which is incorrect.
hadc1.Instance = ADC1; hadc1.Init.ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV2; hadc1.Init.Resolution = ADC_RESOLUTION_12B; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.ScanConvMode = ADC_SCAN_SEQ_FIXED; hadc1.Init.EOCSelection ...