stm32芯片休眠模式_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);    //待机模式123

这里我们用到停机模式,有两个参数

第一个PWR_Regulator是选择电源是否进入低功耗#define PWR_Regulator_ON               //电源不进低功耗 唤醒基本没延迟#define PWR_Regulator_LowPower         //电源进去低功耗 不过唤醒启动有一点延迟    12

第二个参数PWR_STOPEntry#define PWR_STOPEntry_WFI              //中断唤醒#define PWR_STOPEntry_WFE              //事件唤醒12

停机模式唤醒后自动选择系统内部时钟,看自己的应用是否需要重新配置;如果你的系统时钟是HSI或者HSE是要重新配置,一般都需要重新配置,直接调用系统时钟配置函数。

另外停机模式唤醒后,flash程序是从中断或事件开始执行的。

我们要做到停机模式更低功耗,例程RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);  //使能时钟PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);12

第一个参数要配置电源低功耗模式,第二个随你是中断唤醒还是事件唤醒,或者两者都要;

第二步你要把所有引脚IO口释放,全部配置成模拟输入状态,IO口几乎0消耗,如果不信下面我们来看手册

我们只要在进入低功耗之前把IO口配置一下就行了(根据自己应用需要配置IO),但是唤醒之后就要重新配置IO口了。

在这里我要提醒广大朋友,在配置IO模拟输入之前,一定不要锁定IO口,我就犯了这个毛病,在配置成模拟输入之前我们串口两个引脚锁定了导致我的功耗一直在90uA左右下不去,老费劲了,挣了我一天时间才发现,最后功耗在10几uA左右,这功耗已经相当低了,能适应现在电池行业不是很发达的时代了,用四节5号电池够你用至少1年了。

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值