Вопрос понятен, следует избегать общих .h потому что так появляются
общие зависимости и твой код становится единым комком из которого
потом тяжело что-либо удалить/изменить или использовать в новом
проекте. Еще, у STM HAL и библиотек генерируемых STM32CubeMX /
STM32CubeIDe есть проблема с main.h / main.c - благодаря тому что
по-умолчанию в него генерится весь код связанный с Hardware и самое
разумное решение так и сделать его чисто "Hardware". Свой
application-specific код следует вынести в другие файлы (не писать в main.c / main.h). © Разделяй и властвуй.