S tím jak to funguje v Arduino IDE bohužel neporadím, já to programuju v Keil uVision v Cčku s pomocí STDPeriphLib (dřívější verze HAL knihoven od ST).
Má to rozhodně hodně velkou "vstupní bariéru" (naučit se co kde najít, jak se používají perfierie, jak nakonfigurovat clock/PLL, atd), ale na druhou stranu to je strašlivě silné. Programátor v sobě má debuger, který se v reálném čase může koukat do libovolného paměťového místa procesoru, takže krokovat program a koukat při tom na jednotlivé proměnné jde out of the box. Oproti standardnímu "arduino debugování" stylu "přidám printf, zkompiluju a spustím" to je naprosto jiný kafe...