Я когда-то поборол себя. И использую HAL свободно, на этапе
развития проекта. Потом, по мере либо а) не устроил функционал;
либо б) не нравятся коллбэки-обёртки; либо в) Уже регистрами сам
умею; либо г) Есть свободное время, перевожу на регистры. Бывает, сразу бракую функции ХАЛа - не подходят в мою модель многозадачности. Но, как минимум, запускаю тестовый проект. И когда нужно срочно - просто "разматываю" цепочку вызовов и перевожу на уровень CMSIS.