FreeRTOS 低功耗之待机模式
STM32F103 如何进入待机模式
在 FreeRTOS 系统中,让 STM32 进入待机模式比较容易,调用固件库函数PWR_EnterSTANDBYMode 即可。
STM32F103 如何退出待机模式
让 STM32 从待机模式唤醒可以通过外部复位(NRST 引脚)、 IWDG 复位、 WKUP 引脚上的上升沿或
RTC 闹钟事件的上升沿。从待机唤醒后,除了电源控制/状寄存器,所有寄存器被复位。
从待机模式唤醒后的代码执行等同于复位后的执行。电源控制/状态寄存器(PWR_CSR)将会指示内核
由待机状态退出。
在开发板上面是通过 K2 按键来唤醒,K2 按键使用的引脚就是 WKUP 引脚。
STM32F103 使用待机模式注意事项
待机模式要注意以下问题:
在待机模式下,所有的 I/O 引脚处于高阻态,除了以下的引脚:
复位引脚(始终有效)。
当被设置为防侵入或校准输出时的 TAMPER 引脚。
被使能的唤醒引脚。
STM32F4xx 如何进入待机模式
在 FreeRTOS 系统中,让 STM32 进入待机模式比较容易,调用固件库函数
PWR_EnterSTANDBYMode 即可。
STM32F4xx 如何退出待机模式
让 STM32 从待机模式唤醒可以通过外 WKUP 引脚上升沿、 RTC 闹钟(闹钟 A 和闹钟 B)、 RTC 唤
醒事件、 RTC 入侵事件、 RTC 时间戳事件、 NRST 引脚外部复位和 IWDG 复位,唤醒后除了电源控制/
状寄存器,所有寄存器被复位。
从待机模式唤醒后的代码执行等同于复位后的执行。电源控制/状态寄存器(PWR_CSR)将会指示内核
由待机状态退出。
早期工程版本是通过 K2 按键,即引脚 PC13 检测 RTC 的入侵事件进行唤醒,实际测试发现问题较多。
本实验将其改为复位按键进行唤醒,可以这么做是因为系统进入到待机模式后,被唤醒后系统的执行过程
等同于进行复位。
STM32F4xx 使用待机模式注意事项
待机模式要注意以下问题:
将选择的待机模式唤醒源(RTC 闹钟 A、 RTC 闹钟 B、 RTC 唤醒、 RTC 入侵或 RTC 时间戳标志)对
应的 RTC 标志清零,防止无法正常进入待机模式。
待机模式下的 I/O 状态
复位引脚(仍可用)。
RTC_AF1 引脚 (PC13)(如果针对入侵、时间戳、 RTC 闹钟输出或 RTC 时钟校准输出进行了配置)。
WKUP 引脚 (PA0)(如果使能)。
欢迎加入作者的小圈子
扫描下方左边二维码加入QQ交流群,扫描下方右边二维码关注个人微信公众号并获取更多隐藏干货,QQ交流群:816747642 微信公众号:Crystal软件学堂
![](https://images.cnblogs.com/cnblogs_com/yangguang-it/1907263/o_201227061707QQ20201227141844.png)
![](https://images.cnblogs.com/cnblogs_com/yangguang-it/1704156/o_200415115115qrcode_for_gh_5c7d1da35871_258.jpg)
作者:Crystal软件学堂 bilibili视频教程地址:https://space.bilibili.com/5782182 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在转载文章页面给出原文连接。 如果你觉得文章对你有所帮助,烦请点个推荐,你的支持是我更文的动力。 文中若有错误,请您务必指出,感谢给予我建议并让我提高的你。 |