У меня к тебе вопрос с порога - каковы номиналы емкостей в обвязке
часового кварца? У STM, особенно у 400-й серии действительно очень
слабенький генератор. Для серий F2/F4 больше 2.2пФ лично я не
рискую ставить - чревато нестабильным запуском. Тут ниже Vit
написал про возможное влияние при работе с GPIO, вполне такое может
быть. Если у тебя нет никакой возможности вмешаться в ситуацию, кроме программной, то есть такой вариант (для его реализации необходим системный кварц):
Суть - счет времени при работе устройства должен выполняться по системному кварцу, одновременно надо следить за рассоглосованием между "часовым" и "системными" часами и складывать эту информацию в BACKUP-регистры (можно и напрямую счетчик RTC менять). Ну и при каждом включении использовать эту информацию для продолжения работы "системных" часов.
Тогда никакие наводки от работающего МК не будут влиять на текущее время. И если будут происходить сбои в работе "часового" счетчика - то они тут-же будут зафиксированы и учтены при следующем включении.
Я тут много раз писал про такой способ реализации счета времени - "часовой" используется в моменты, когда нет питания устройства, и "системный" - когда устройство запитано и работает.
Это позволит избежать сбоев и температурной нестабильности при работе часового кварца.