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

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

3天内不再提示

详解STM32低功耗模式

单片机与嵌入式 来源:单片机与嵌入式 2023-11-08 12:18 次阅读

低功耗模式

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

b8df6020-7dec-11ee-939d-92fbcf53809c.png

对比了 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是选择电源是否进入低功耗。

#definePWR_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消耗,具体见手册说明。

b8fc33e4-7dec-11ee-939d-92fbcf53809c.png

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

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

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

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

    关注

    3

    文章

    1309

    浏览量

    39846
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348738
  • 时钟
    +关注

    关注

    10

    文章

    1479

    浏览量

    130306
  • 低功耗
    +关注

    关注

    9

    文章

    2227

    浏览量

    102667

原文标题:STM32低功耗模式

文章出处:【微信号:单片机与嵌入式,微信公众号:单片机与嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32L053C8 MCU上的低功耗模式详解

    知道可用的低功耗模式,如何配置它们以及最适合哪些任务。本文概述了STM32L053C8 MCU上的低功耗模式。但是,由于该系列的
    的头像 发表于 11-09 15:23 1.3w次阅读

    stm32低功耗模式

    最近学习了stm32低功耗模式, 发现很多可以学习的地方, 单片机功耗要低才能续航很久模式1sleep_mode
    发表于 08-02 08:31

    STM32的3种低功耗模式

    使用芯片===>STM32F429IGT6(制作不易,希望大佬能给个赞支持下小丁)目录1、低功耗模式简介很多单片机有低功耗模式
    发表于 08-10 07:42

    STM32低功耗模式

    STM32低功耗模式1.睡眠模式2.停止模式3.待机模式各种
    发表于 08-11 07:35

    STM32低功耗模式

    STM32低功耗模式共有三个:睡眠模式-(sleep): 睡眠模式功耗是mA级别,一般在实际
    发表于 08-12 08:15

    STM32低功耗模式

    很多单片机都有低功耗模式STM32 也不例外。当 CPU 不需继续运行时,可以利用多个低功耗模式来节省
    发表于 08-20 07:55

    基于STM32单片机低功耗模式机制详细解析

    本文主要解读STM32低功耗模式的机制,并不侧重STM32低功耗的程序实现,而且借助STM32
    发表于 10-24 16:16 1.9w次阅读
    基于<b class='flag-5'>STM32</b>单片机<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>机制详细解析

    探究STM32低功耗的几种模式

    低功耗模式 本文讨论下STM32低功耗模式,先看如下手册。 对比了 STM32F0 和
    的头像 发表于 07-26 17:49 1w次阅读
    探究<b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b>的几种<b class='flag-5'>模式</b>

    stm32低功耗模式

    前言在做很多产品的时候,功耗是必须要考虑的一项因素,一定程度上决定了你的产品是否有竞争力,降低功耗可以从硬件上和软件上进行处理,而软件上进入低功耗模式是降
    发表于 12-07 15:51 9次下载
    三 <b class='flag-5'>stm32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>

    STM32低功耗模式之待机模式

    上周完成了一个小项目,项目涉及到stm32低功耗的待机模式,特在此记录下32的待机模式。 芯片:STM32f030F4 库:HAL库
    发表于 12-07 16:21 7次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>之待机<b class='flag-5'>模式</b>

    PWR-低功耗模式-STM32F4

    使用芯片===>STM32F429IGT6(制作不易,希望大佬能给个赞支持下小丁)目录1、低功耗模式简介很多单片机有低功耗模式
    发表于 12-28 19:25 9次下载
    PWR-<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>-<b class='flag-5'>STM32</b>F4

    STM32低功耗模式的调试

    低功耗模式的调试型号:STM32L452RET6规格:64PINSTM32支持3种低功耗模式:1
    发表于 12-31 19:01 2次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>的调试

    STM32低功耗模式测试

    stm32单片机低功耗模式共用3中,下来对3中低功耗进行分析测试。先看手册上相关低功耗资料介绍:先来分析睡眠
    发表于 12-31 19:05 9次下载
    <b class='flag-5'>STM32</b><b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>测试

    STM32 低功耗STOP模式,RTC唤醒

    芯片:STM32L071CB开发环境:STM32CubeMX + keil5.33使用实时时钟RTC的 WakeUpTimer定时器产生的中断将STM32从STOP低功耗
    发表于 12-31 19:06 43次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>低功耗</b>STOP<b class='flag-5'>模式</b>,RTC唤醒

    AN2629 STM32F1低功耗模式

    AN2629 STM32F1低功耗模式
    发表于 11-24 08:30 0次下载
    AN2629 <b class='flag-5'>STM32</b>F1<b class='flag-5'>低功耗</b><b class='flag-5'>模式</b>