Gotta say, I just don't understand STM32's "HAL". ST's headers has proper macros (and structs IIRC), and it's so much more readable by just using those macros rather than the weird indirection library which is still a 1:1 match with hardware registers