历史上的今天
返回首页

历史上的今天

今天是:2025年03月29日(星期六)

2019年03月29日 | STM32进入低功耗模式以及唤醒(RTC+中断)

2019-03-29 来源:eefocus

在确认使用低功耗功能后,大家铁定会通过不同途径查找相关的资料,了解到什么是低功耗、低功耗有哪几种以及不同模式之间的区别,最后还有一些程序截取、说明,资料不少,但是能让人一目了然理解的不太多,尤其是刚接触这个功能的新手,或许是资历尚浅,编程以及检索资料能力还有待提高。


再此,我抛砖引玉,发表一篇我的调试感受,我从  低功耗初体验、低功耗功能说明、低功耗总结三个方面进行说明。


首先,低功耗初体验。跟大家一样,查到STM32的低功耗有三个模式,分别是睡眠模式、停止模式以及待机模式(STM32开发指南——库函数版本321页)。



这里介绍的是停机模式,原因有以下亮点:功耗以及实用性。三个模式的功耗由高到低依次是睡眠、停机,最后是待机,既然待机功耗最低为什么选停机模式,这是由于待机模式与停机模式都可以RTC唤醒,但是停机模式可以通过任意管脚的外部中断唤醒,而待机模式只能通过NRST因脚伤的外部复位唤醒,局限性太大。


第二部分,低功耗功能说明


 


/*RTC设置*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

PWR_WakeUpPinCmd(ENABLE);

PWR_BackupAccessCmd(ENABLE);

RTC_Configuration();

NVIC_Configuration();

//MCU进入停机模式

void MCU_EnterSTOPMode(void)

{

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

/* Allow access to BKP Domain */

  PWR_BackupAccessCmd(ENABLE);


RTC_WaitForLastTask();

    RTC_ClearFlag(RTC_FLAG_SEC);

RTC_WaitForLastTask();

    while(RTC_GetFlagStatus(RTC_FLAG_SEC) == RESET);

    RTC_SetAlarm(RTC_GetCounter()+ Stop_Time);

    //Stop_Time这个是唤醒时间,单位是秒,即Stop_Time秒后启动RTC唤醒

    RTC_WaitForLastTask();

RTC_ClearFlag(RTC_FLAG_RSF);

RTC_WaitForLastTask();

RTCAlarm_IT_Enable();

RTC_WaitForLastTask();


EXTIX_Init();

EXIT_Configuration();     

    STOP_PeripthAndClk(); 

    

    EXTI->PR = 0x00; 

 

    /* Request to enter STOP mode with regulator in low power mode*/

    PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);


CLI();//ÆÁ±ÎËùÓÐÖжÏ

    System_timer_1ms = 0;

SYSCLKConfig_STOP(); 

START_PeripthAndClk(); 


SEI(); 

}

最后,低功耗总结


低功耗想要做到自己满意的效果,需要程序与硬件配合,根据外部电路将引脚置成上拉或者下拉,减小不必要的电流损失;还有就是将开启的外设关闭,如果忘了关闭可能会对结果有较大影响(尤其是又添加功能的时候,记得初始化的时候加上并调试成功可以使用时,记得在进入低功耗关掉)。

推荐阅读

史海拾趣

Antex公司的发展小趣事

随着业务的不断扩展,Antex在1980年决定将工厂从东京都大田区羽田迁至茨城县高萩市。这一搬迁不仅为公司提供了更广阔的发展空间,也标志着Antex开始向着全球化布局迈进。此后,公司积极寻求国际合作,与全球各地的供应商和客户建立了紧密的合作关系。

COILCRAFT公司的发展小趣事

COILCRAFT公司成立于1945年,是美国较早的磁性元件制造商。在创立初期,公司以生产高频电感器和变压器为主,凭借着卓越的技术和稳定的质量,逐渐在电子元器件市场中崭露头角。公司总部位于伊利诺伊州卡里,这个地理位置为其提供了便捷的物流和人才资源,为其后续的发展奠定了坚实的基础。

Atlanta Micro公司的发展小趣事

近年来,电子行业经历了快速的发展和变革,新技术、新产品层出不穷。面对这一形势,Atlanta Micro积极应对挑战,不断调整战略和业务模式。公司加强了与产业链上下游企业的合作,共同应对市场变化;同时,也加大了对新兴技术的研发投入,力求在新技术领域取得突破。这些努力使得Atlanta Micro在激烈的市场竞争中保持了稳健的发展态势。

以上便是关于Atlanta Micro在电子行业发展的5个故事。这些故事展示了公司从创业初期到逐渐发展壮大的过程,以及面对挑战和变革时所采取的应对策略。虽然这些故事只是公司发展历程中的一部分,但它们足以体现出Atlanta Micro在电子行业中的坚韧和拼搏精神。

Guerrilla RF公司的发展小趣事
如果电动机驱动电路损坏,可能导致硬盘无法接收到启动信号,从而无法正常工作。
Connector City公司的发展小趣事

为了降低生产成本、提高生产效率,Connector City公司开始实施产业链整合战略。公司与上游原材料供应商和下游客户建立了紧密的合作关系,实现了供应链的优化和协同发展。通过整合产业链资源,公司不仅降低了采购成本和市场风险,还提高了产品质量和交货速度,进一步增强了市场竞争力。

EXCELSEMI [ EXCEL SEMICONDUCTOR INC. ]公司的发展小趣事

EXCELSEMI公司自创立之初,就致力于半导体技术的研发与创新。在早期,公司研发团队成功攻克了高性能半导体材料的生产技术难题,这一技术突破为公司后续的产品开发奠定了坚实基础。随着技术的不断进步,EXCELSEMI在半导体芯片设计、制造和封装等领域都取得了显著成果,逐渐在市场中崭露头角。

问答坊 | AI 解惑

功放电路分享

本帖最后由 paulhyde 于 2014-9-15 09:28 编辑 大家看看a啊 呵呵 分享下  …

查看全部问答>

运放的温飘温飘

前级输入为4-20mA电流信号,在200偶的电阻上形成取样电压,R224后面就到AD了。 除R237电阻外,其余电阻均为1%,50PPM的电阻,加温到60度左右,AD变化非常大,大概有0.5%的变化,如何才能降低温漂?失调电流,失调电压,偏置电压如何补偿? 参考的 ...…

查看全部问答>

射频通信!nRF2401和nRF24L01功率调节无效过

大家好,遇到点问题,有点困惑,想在这上面看看有没有同志遇到类似问题。 最近设计的两款射频通信板,采用的射频芯片是nRF2401和nRF24L01,但是设置此两个芯片的发射功率时,发现基本上没有什么效果,通信距离基本都保持比较远的距离,很难将距离 ...…

查看全部问答>

无线传感器网络LEACH

      无线传感器网络中用LEACH协议进行分簇后,簇内想采用局部的TDMA机制,这样的话,相邻的各个簇之间会产生干扰。目前考虑到了两种解决方法:       一种是采用采用直接序列扩频技术,即各个簇采用不 ...…

查看全部问答>

嵌入式操作系统

现有一款简单开发板,cpu为ARM系列的S3C2410,板上有boot flash、SDRAM、串口、Intel 82559 PCI 网卡,其所需硬件设备驱动程序均已放在BSP相应目录下,请为这款开发板搭建一个完整的VxWorks交叉开发环境(包括使用到的软硬件设备、连接方式、启动代 ...…

查看全部问答>

学习arm,该看什么书呢?

搞wince驱动,想掌握下arm的体系结构,该看什么样的书呢,…

查看全部问答>

实时时钟M62X42B的计时过快问题

请问M62X42B计时过快过快是什么问题,我读M62X42B的寄存器的值,变换很快,理论上应该是1s变化一次,而我写的程序基本上都是小时级别的递增?请问高手,一般出现这种情况都什么什么原因引起的。…

查看全部问答>

流明学习笔记之三LM3S8962开发板的安装

有人会问这个简单,我看未必,有些心得我还是写出以免走弯路     这套开发板老好了,   大板是LM3S8962,且可以外接ULINK,JLINK调式. 小板是LM3S2110,且可以外接ULINK,JLINK调式 小板通过10针线跟大板连接,评估CAN总线时用 那 ...…

查看全部问答>

TI采用 MSP430 的带双电平输出的 3.6V 至 5.5V 输入LDO 参考设计

此参考实际旨在给输入电压范围为3.6V至5.5VMSP430器件及带有双电平输出LDO供电。…

查看全部问答>