STM32 gotchas
151.Missing ADC codes in 'H7, due to missing calibration

In most newer STM32 ADC, before performing the first conversion, a calibration has to be performed by software. This is in order to remove an offset due to manufacturing variations and imperfections.

In the 'H7 family, a new ADC has been implemented, featuring 16-bit resolution in contrast to the 12-bit ADC in other STM32 families. The increased resolution obviously required a change in the internal ADC architecture. This is witnessed by the fact, that if this ADC is used without calibration, it not only produces offset values, but with input voltage varying across the whole ADC input range, values corresponding to up to a hundred of ADC bins around 2^12 boundaries are missing.

This issue has been spotted and reported by user HPiG.