Вот у меня тоже была такая идея, даже можно просто взять проект с куба (там текстовый файлик), и на основе его генерировать. Написать быстрые функции на асме (или выдрать из листа) для стандартной инициализации и останеться только менять константы, ну и иметь несколько вариаций реализации для одной задачи.
Да просто таблицы регистр-маска-значение как исходные данные для кодогенератора
Я уже показывал такую технику тут Программирование STM32 на ассемблере
И эти же таблицы можно использовать как данные для openocd, чтобы отлаживать конфигурации периферии мк вообще без программирования и компилирования