Das SFR GPIOx_ODR (data output register) hat laut Manual 32Bit, von denen aber die oberen 16 unbenutzt sind. D.h. man kann (und sollte) ein 16Bit Port (z.B. PortA_L + PortA_H) direkt in einem Zug auslesen, statt mehrere einzelne nacheinander.