STM32 ADC continue mode
What happens is that the printf in the conversion completion callback is still printing when the next interrupt happens so it can't execute until printf is done and therefore the result is not read in time and overrun happens.
So it is usually not a good idea to call printf in an interrupt context, unless you have written it yourself to make it re-entrant and make it write to a buffer, and still it might be too slow.