Добрый день,
STM32F030K6.
Есть некоторая функция, в которой объявлена cтатическая переменная bool. Функция отрабатывает и переводит МК в режим StandBy. После чего, через выдержку времени, контроллер сбрасывается по IWDG. Вроде бы, должен произойти сброс всех регистров и новая инициализация переменных, однако, этого не происходит. Значение переменной сохраняется после сброса в том состоянии, которое было до сброса. Пришлось принудительно устанавливать состояние флага.
int Servo_main()
{
static bool flagStartResetted=false;
...
if (false==IsConditionToPull()&&false==flagStartResetted) {
HAL_Delay(READY_TO_CLOSE_DELAY_MS);
if (false==IsConditionToPull()){
PrintMessage("Reset to close\n");
flagStartResetted = true;
}
}
if(true==IsConditionToPull()&&true==flagStartResetted) {
flagStartResetted = false; /*без этого при пробуждении значение флага true, хотя true==IsConditionToPull()*/
PrintMessage("Condition to start pull\n");
...
HAL_PWR_EnterSTANDBYMode();
}