Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Написано здорово, правда заголовку не соотаетствует. Но никогда, НИКОГДА, не надо использовать магические числа в коде программы, все константы через дефайны с понятным именем, зависимое от частоты - формулой от частоты, режимы пинов через макрос от номера пина и режима, заданного тоже енумом или дефайном…
Жизнь без CubeMX: Как прошить STM32, имея под рукой только блокнот