Я экспериментирую с режимом ожидания. IDE это STM32CubeIDE, mcu stm32f407vgt9. Таким образом, я прочитал в таблице данных, что mcu выходит из режима ожидания, если выполнено одно из следующих условий:
Передний фронт вывода WKUP, RT C тревога (Alarm A и Alarm B), RT C wake -вверх, событие подделки, событие отметки времени, внешний сброс на выводе NRST, сброс IWDG.
MCU входит в режим ожидания с помощью этой функции HAL_PWR_EnterSTANDBYMode (), если я хорошо понимаю. Я делаю это, и я ожидаю, что если mcu достигнет высокого уровня на выводе WKUP (PA0), mcu выйдет из режима ожидания. Я хочу, чтобы этот простой код выполнялся.
while (1){
HAL_PWR_EnterSTANDBYMode();
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_SET);
HAL_Delay(3000);
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_14, GPIO_PIN_RESET);
HAL_Delay(3000);}
MCU go в режиме ожидания, но выход из режима ожидания никогда не происходит. Я пытаюсь подключить PA0 с высоким, но ничего не происходит.
Я хочу набрать sh другой код, но теперь это невозможно, потому что я go это ошибка из STM32CubeIDE:
Ошибка в последовательности окончательного запуска:
Ошибка при инициализации устройства ST-LINK.
Причина: (4) На цели не найдено устройство.
Как я могу решить эту проблему? Прежде чем экспериментировать с режимом ожидания, я несколько раз получал эту ошибку, и мне удалось ее устранить, подключив вывод NRST к GND (аппаратный перезапуск mcu), но теперь он не работает, потому что после сброса код будет выполняться автоматически. Соединить NRST с GND и попытаться набрать код sh невозможно, (возникнет новая ошибка, которая указывает, что в данный момент активирован аппаратный сброс: ошибка при инициализации устройства ST-LINK. Причина: (8) Цель удерживается при сбросе.).
Любая идея приветствуется