0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究STM32低功耗的几种模式

FPGA那点事儿 来源:CSDN 作者:zzw3255 2021-07-26 17:49 次阅读

低功耗模式

本文讨论下STM32低功耗模式,先看如下手册。

对比了 STM32F0 和 STM32F1 两者进入低功耗是一样的,低功耗模式有三种:

睡眠模式,CM3 内核停止,外设仍然运行,此功耗是最高的

停止模式,所有时钟都停止,此功耗较低,典型大概在20uA左右

待机模式,1.8V 内核电源关闭,此功耗最低,典型大概在2uA左右

一般做开发大多都是选择停机模式,因为停机模式功耗较低,而且任一中断或事件都能唤醒。待机模式虽然功耗最低,电流只差10个微安,但是只有特定的事件和引脚可以唤醒,实时性不是很好。

先来看下官方库进入低功耗的方式。

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);

上面代码第一个参数PWR_Regulator_LowPower是配置电源低功耗模式。第二个参数PWR_STOPEntry_WFI用来确定是中断唤醒还是事件唤醒,或者两者都要。

第二步你要把所有引脚IO口释放,全部配置成模拟输入状态,此时IO口几乎0消耗,具体见手册说明。

3ede9038-e0bf-11eb-9e57-12bb97331649.png

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

注意,在配置IO模拟输入之前,一定不要锁定IO口。我之前就踩了这个坑,在配置成模拟输入之前我们串口两个引脚锁定了导致我的功耗一直在90uA左右下不去。

正确配置的功耗在10uA左右,这功耗已经相当低了,用四节5号电池够你用至少1年了。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2270

    文章

    10899

    浏览量

    355886

原文标题:STM32低功耗模式

文章出处:【微信号:gh_94c30763133f,微信公众号:FPGA那点事儿】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何实现EEPROM的低功耗模式

    内容进行擦除和重写。在许多应用中,尤其是在电池供电的设备中,低功耗模式对于延长设备的使用寿命至关重要。以下是实现EEPROM低功耗模式的一些方法: 1. 选择合适的EEPROM类型 选
    的头像 发表于 12-16 16:54 304次阅读

    stm32低功耗设计技巧

    STM32低功耗设计是一个综合性的工作,需要在硬件设计和软件设计两个层面进行综合考虑和优化。以下是一些关键的STM32低功耗设计技巧: 一、硬件设计层面 选择
    的头像 发表于 11-19 15:52 412次阅读

    SD NAND SPI模式:如何实现低功耗运行

    最近,收到客户反馈,使用我们SD NAND过程中,使用SPI模式,对SD完成操作后,SD没有进入低功耗模式,未对SD进行任何操作的情况下测得的功耗仍在20mA左右。经过我们分析,发现S
    的头像 发表于 09-02 11:06 459次阅读
    SD NAND SPI<b class='flag-5'>模式</b>:如何实现<b class='flag-5'>低功耗</b>运行

    STM32L151低功耗运行模式CPU是否正在运行?

    在使得CPU处于LPRUN Mode时,翻转LED,LED不能正常翻转,因此请教一下网友们,STM32L151低功耗运行模式CPU是否正在运行
    发表于 07-05 06:17

    STM32低功耗控制一般都是采用哪种模式

    STM32中,低功耗控制有三种,休眠模式,停机模式,待机模式,想知道大家都常用哪个模式?都能控
    发表于 04-30 08:03

    STM32L4低功耗休眠模式下为什么无法使用SWD接口?

    ,是完全可以正常工作的。但是淘宝上卖的18元的或者120元的st-link,都不行,具体我用示波器监视NRST端口,都没有发现有拉低的过程。 难道淘宝上没有一款st-link支持stm32单片机低功耗模式下的烧
    发表于 04-24 07:42

    STM8l151低功耗模式唤醒方式如何选择?

    使用STM8L151G4U6系列,需要用GPIO中断/RTC时钟/串口中断唤醒,期望功耗在uA级别,请做过低功耗的人看看可以采用哪种低功耗模式? 可用的
    发表于 04-22 06:01

    RADIO与RFWAKEUP具体功能是什么样的,如何把系统从低功耗模式唤醒的?

    请教下大家RADIO与RFWAKEUP具体功能是什么样的,如何把系统从低功耗模式唤醒的,手册中关于射频与无线部分介绍的功能是真的少,无线部分不是STM32WB系列的重要功能之一么,感觉像藏着掖着一样
    发表于 04-19 08:03

    STM32F407 STOP模式低功耗的电流偏大怎么解决?

    大家好!最近有个项目用 STM32F407VGT6(100pin , 内1MBFLASH)低功耗的电流偏大 , 程序 测试说明如下: 1. STM32F407VGT6 只接了8M的高频晶振和32K
    发表于 04-15 07:00

    stm32g070怎么调试才能降低功耗

    stm32g070,单芯片的最小系统板使用官方例程进入standy 模式后电量70ua左右,和手册的1,2个ua不符,已经确定是芯片的功耗的,不知道该怎么调试才能降低功耗
    发表于 03-28 06:46

    无法从低功耗模式中正确唤醒STM32L552怎么办?

    STM32L552无法从低功耗模式中正确唤醒
    发表于 03-20 08:07

    stm32G070串口设置外部中断触发退出低功耗后重新变为串口,串口发送后退出低功耗为什么会卡死?

    stm32G070低功耗STOP模式外部中断唤醒,串口设置外部中断触发退出低功耗后重新变为串口,串口发送后 退出低功耗不知道为什么会卡死
    发表于 03-20 07:24

    ESP32-S3模组是怎么配置低功耗模式的?低功耗模式功耗大概是多少?

    经常有人问S3模组是怎么配置低功耗模式的?低功耗模式功耗大概是多少?下面小启就跟大家讲下S3模组低功耗
    的头像 发表于 01-26 08:03 4363次阅读
    ESP32-S3模组是怎么配置<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>的?<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>下<b class='flag-5'>功耗</b>大概是多少?

    stm32f030K4t6 低功耗设置

    低功耗设置。 首先,我们需要了解STM32F030K4T6微控制器的低功耗模式。该微控制器具有多种低功耗
    的头像 发表于 01-04 10:41 1214次阅读

    SEGGER调试低功耗模式

    低功耗模式是现代嵌入式系统设计中一个非常重要的考虑因素。为了延长电池续航时间、降低能耗以及满足可持续发展的需求,嵌入式系统需要能够有效地进入低功耗模式,并在需要时快速唤醒。正因如此,S
    的头像 发表于 01-02 16:36 626次阅读