stm32 低功耗踩坑 -stop 模式和 standy模式唤醒

参考 STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)_stm32 hal rtc每秒唤醒_觉皇嵌入式的博客-CSDN博客

stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口。_树懒的聪明的博客-CSDN博客

void sys_enter_stop_mode(void)
{
    // 使能PWR时钟
    __HAL_RCC_PWR_CLK_ENABLE();

    // 清除唤醒标记
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

    // 如果使用WK-UP引脚唤醒那么需要使能
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);

    // 进入STOP模式
    HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI);
}

void sys_enter_standby_mode(void)
{
    // 使能PWR时钟
    __HAL_RCC_PWR_CLK_ENABLE();

    // 清除唤醒标记
    __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);

    // 如果使用WK-UP引脚唤醒那么需要使能
    HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);

    // 进入待机模式
    HAL_PWR_EnterSTANDBYMode();
}

待机唤醒和stop模式唤醒的区别:

因此待机模式下的唤醒结论如下:

1:唤醒形式直接产生闹钟中断就能唤醒。

2:唤醒后不会进入闹钟中断函数

3:唤醒后程序复位,重新执行

因此停机模式下的唤醒结论如下:

1:唤醒形式产生闹钟中断不一定就唤醒,需要对任何可能的标志位清楚,并且时钟要重新配置。

2:唤醒后进入闹钟中断函数

3:唤醒后程序进入闹钟中断函数,然后再进入原来停机的位置继续运行。没有复位,单片机寄存器里的各种变量值仍然保留!!

见文章 

stm32待机模式和停机模式唤醒程序的区别,以及唤醒后程序入口。_树懒的聪明的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值