我正在尝试待机模式。 IDE是STM32CubeIDE,mcu stm32f407vgt9。因此,我在数据表中读到,如果满足以下条件之一,则mcu会退出待机模式:
WKUP引脚上升沿,RTC警报(警报A和警报B),RTC唤醒,
篡改事件,时间戳事件,NRST引脚中的外部复位,IWDG复位。
如果我很了解,MCU通过此函数HAL_PWR_EnterSTANDBYMode()进入待机模式。我这样做,并且我希望如果MCU在WKUP引脚(PA0)上电平变高,它将退出待机模式。我想要这个简单的代码。
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进入待机模式,但永远不会离开待机模式。我尝试将PA0连接到高电平,但没有任何反应。
我想刷新另一个代码,但是现在不可能了,因为我从STM32CubeIDE中得到了这个错误:
最终启动顺序错误:
初始化ST-LINK设备时出错。
原因:(4)在目标上找不到设备。
我该如何解决这个问题?在尝试待机模式之前,我多次遇到此错误,并通过将NRST引脚连接到GND(硬件重启MCU)成功解决了他,但现在它不起作用,因为复位后代码将自动执行。将NRST与GND连接
尝试刷新代码是不可能的(将出现新错误,表明当前已激活硬件复位:ST-LINK设备初始化出错。原因:(8)目标保持复位状态。)。
欢迎任何想法
最佳答案
这是解决方案:
将NRST与GND连接,将BOOT0与3V连接,然后在尝试刷新/调试代码后断开NRST与GND的连接。
关于c - 使用待机模式后无法刷新代码。初始化ST-LINK设备时出错。原因:(4)在目标上找不到设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59967707/