STM32睡眠模式低功耗(停止模式)
目前stm32已经非常流行了,那么本文讨论下stm32低功耗模式,不多说先上手册内容!
这是英文文档 不好看懂是吧,下面看中文文档!
我对比了 STM32F0 和 STM32F1 两者进入低功耗是一样的,STM32F4的类似目前没有研究。
低功耗模式有三种,
1.睡眠模式,( CM3 内核停止,外设仍然运行)此功耗是最高的。
2.停止模式,(所有时钟都停止)此功耗较低,典型大概在20uA左右。
3.待机模式,( 1.8V 内核电源关闭)此功耗最低,典型大概在2uA左右。
如果不行那就看手册,上图
一般我们做开发大多都是选择停机模式,因为停机模式功耗较低。而且任一中断或事件都能唤醒,待机模式虽然功耗最低,也就差10个微安,但是只有特定的唤醒脚可以唤醒,实时性不是很好。
我们用停机模式也能降到10几个uA,实时性又好,干嘛不用呢。
要怎么做才能把停机模式功耗进一步降低呢。我们先看官方库进入低功耗。
void PWR_EnterSleepMode(uint8_t PWR_SLEEPEntry); //睡眠模式
void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry); //停机模式
void PWR_EnterSTANDBYMode(void); //待机模式
这里我们用到停机模式,有两个参数
第一个PWR_Regulator是选择电源是否进入低功耗
#define PWR_Regulator_ON //电源不进低功耗 唤醒基本没延迟
#define PWR_Regulator_LowPower //电源进去低功耗 不过唤醒启动有一点延迟
第二个参数PWR_STOPEntry
#define PWR_STOPEntry_WFI //中断唤醒
#define PWR_STOPEntry_WFE //事件唤醒
停机模式唤醒后自动选择系统内部时钟,看自己的应用是否需要重新配置;如果你的系统时钟是HSI或者HSE是要重新配置,一般都需要重新配置,直接调用系统时钟配置函数。
另外停机模式唤醒后,flash程序是从中断或事件开始执行的。
我们要做到停机模式更低功耗,例程
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); //使能时钟
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
第一个参数要配置电源低功耗模式,第二个随你是中断唤醒还是事件唤醒,或者两者都要;
第二步你要把所有引脚IO口释放,全部配置成模拟输入状态,IO口几乎0消耗,如果不信下面我们来看手册
我们只要在进入低功耗之前把IO口配置一下就行了(根据自己应用需要配置IO),但是唤醒之后就要重新配置IO口了。
在这里我要提醒广大朋友,在配置IO模拟输入之前,一定不要锁定IO口,我就犯了这个毛病,在配置成模拟输入之前我们串口两个引脚锁定了导致我的功耗一直在90uA左右下不去,老费劲了,挣了我一天时间才发现,最后功耗在10几uA左右,这功耗已经相当低了,能适应现在电池行业不是很发达的时代了,用四节5号电池够你用至少1年了。
STM32睡眠模式低功耗(停止模式)相关推荐
- STM32CubeMX学习笔记(16)——电源管理(PWR)低功耗停止模式
一.低功耗模式简介 系统提供了多个低功耗模式,可在 CPU 不需要运行时(例如等待外部事件时)节省功耗.由用户根据应用选择具体的低功耗模式,以在低功耗.短启动时间和可用唤醒源之间寻求最佳平衡. 睡眠模 ...
- STM32F103 低功耗停止模式与待机模式操作
工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制的外设有些不妥,想过外部上拉一个电阻可是功耗不好控制放弃该方案选用停止模式.停止模式后IO口保持停止 ...
- STM32 待机模式 和 停止模式 RTC闹钟调试笔记
待机模式 不进入待机模式 闹钟中断服务函数可以进去 进入待机模式WakeUp唤醒后能否进入闹钟中断服务函数 1.待机模式唤醒后,不会进入闹钟中断服务函数,所以会导致wakeup唤醒后,此时闹钟唤醒时间 ...
- STM32超低功耗入门之停止模式
一. 认识停止模式 STM32L4 系列提供了 3 种停止模式:stop0 , stop1 , stop2. 功耗逐次更低. 通过上图可以得出结论: stop0 模式有 2 种电压调节器方案.stop ...
- STM32L431低功耗停止模式莫名其妙自动唤醒
最近在调试STM32L431的低功耗调试模式,发现进入低功耗后HAL_PWREx_EnterSTOP0Mode(PWR_STOPENTRY_WFI);莫名其妙的自动就就被唤醒了,LED开始闪烁,并且串 ...
- STM32低功耗停止模式 以及简述判断中断的两种方式
#include "wkup.h" #include "led.h" #include "delay.h" // //本程序只供学习使用,未 ...
- STM32/AMP32F407进入低功耗待机模式后立马被唤醒的解决办法
最近项目用到低功耗,但是调试发现进入待机就被唤醒的问题,清除WU.SB两个唤醒标志位,也依然被立马唤醒一次. /* 进入待机模式 */HAL_PWR_EnterSTANDBYMode(); 通过极海的 ...
- [STM32F1]STM32 低功耗待机模式与RTC周期唤醒
STM32等类似Cortex-M3的MCU在系统或电源复位以后,MCU就会处于程序运行状态.当用户不需继续运行程序时,可以利用进入低功耗模式来节省电池电量,当需要重新运行时,可以通过特定条件进行唤醒程 ...
- 【STM32笔记】低功耗模式配置及避坑汇总
[STM32笔记]低功耗模式配置及配置汇总 文章总结:(后续更新以相关文章为准) [STM32笔记]低功耗模式.WFI命令等进入不了休眠的可能原因(系统定时器SysTick一直产生中断) [STM32 ...
- STM32通过串口进入和唤醒停止模式
STM32 具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中,电源消耗不同.唤醒时间不同.唤 ...
最新文章
- Linux那些事儿 之 戏说USB(26)设备的生命线(九)
- mysql if exists 数据表_使用IF NOT EXISTS创建数据表
- NLP之ASR:基于python和机器学习算法带你玩转的语音实时识别技术
- 两天入门Python基础(附代码实现)
- oracle函数中bitand,Oracle bitand()函数使用方法
- SparkMLlib回归算法之决策树
- 如何用Pygame写游戏(九)
- 部署Java web项目到阿里云服务器
- Linux查找命令与find命令详解
- 公司财务(书籍学习过程总结)
- 免积分下载与PDF转换
- CodeIgniter安装和入门使用(一)
- 民数记研读1——于宏洁
- php文件对应的模板,wordpress模板文件对应说明关系(wp模板文件说明)
- 2022年的零日漏洞影响了哪些平台?
- 如何练成某一领域的高手
- 电脑右下角没有USB图标,不能退出
- 开发中PG,PL,SE,PM都是什么意思
- 数据库冗余存储设计对读取性能影响的测试
- 最近发现一个很全面的历史网站,包含世界各国各个时代内容