Значение static переменной внутри функции остается неизменным после сброса IWDG потому что статические переменные в функциях инициализируются только один раз при первом вызове функции и хранят свое значение между вызовами функции. После сброса IWDG значение статической переменной не будет сброшено и останется таким же, каким оно было до сброса.
Для обеспечения правильной инициализации статической переменной после сброса МК при работе с STM32F030K6 можно использовать флаг состояния сброса (reset flags) и проверять его значение при инициализации переменной. Например, можно использовать функцию HAL_RCC_GetSysClockFreq(), чтобы проверить состояние сброса и в зависимости от этого выполнить нужные действия по инициализации переменной.
Также можно использовать внешнюю память или EEPROM для хранения значения переменной после сброса. При инициализации переменной можно сначала проверить значение в памяти и, если оно не является нулевым (например, после сброса), использовать его в качестве начального значения переменной.
В целом, для правильной инициализации статической переменной после сброса МК необходимо учитывать особенности аппаратной платформы и использовать соответствующие методы и инструменты для обеспечения корректной работы программы после сброса.