Что важно понимать
Идеалогия разработки от STM такова :
В STM32 Cube MX делаем настройку всей периферии и подготавливаем готовый проект для разных сред разработки.
Далее пишем свой код между тегами :
/* USER CODE BEGIN 1 */
здесь ваш код
/* USER CODE END 1 */
Потом можно опять изменить настройку периферии через CubeMX заново сгенерировать все в тот же проект, но ваш код между тэгами сохранится.
Вот так это работает и я лично этим именно так и пользуюсь.