STM32 gotchas
214. ADC in polling/interrupt mode stops working (due to ADC_DR being observed in debugger)

This is one of the ways how debugging intrusivity can result in a surprising result.

In most STM32 ADCs, reading the ADC data register (ADC_DR) clears in hardware the end-of-conversion flag (ADC_SR.EOC/ADC_ISR.EOC).

This flag gets cleared also if ADC_DR is read by debugger - e.g. by displaying it together with some "live/autoread" setting. This then in turn may prevent an interrupt-based or polling-based ADC readout/restart routines - which expect the end-of-conversion flag to be set - from working properly, leading to a surprising "ADC stopped working" observation.