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

RTC代表的是实时时钟的意思。因为它提供的时钟基准比较准确所以用处还是很多的。本文章主要讲解基于STM32F103上的RTC闹钟中断功能以及用闹钟中断唤醒STM32的待机模式。

这里主要说一下,本人在调试STM32低功耗功能时遇到的问题以及解决思路与大家分享一下。

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

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

首先,低功耗初体验。跟大家一样,查到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();

}

最后,低功耗总结

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

此文献给做单片机工作的同僚,希望大家在嵌入式硬件的道路上越走越远,第一篇,望大家多多指导,不喜勿喷!

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

新竹2025年9月9日 /美通社/ -- 全球客制化存储芯片解决方案设计公司爱普科技今日宣布,其新一代PSRAM—ApSRAMTM (Attached-pSRAM)已通过客户平台验证,预计将于年底开始量产。ApSRAMT...

关键字: PSRAM 低功耗 存储芯片 MT

在嵌入式开发中,STM32的时钟系统因其灵活性和复杂性成为开发者关注的焦点。然而,看似简单的时钟配置背后,隐藏着诸多易被忽视的陷阱,轻则导致系统不稳定,重则引发硬件损坏。本文从时钟源选择、PLL配置、总线时钟分配等关键环...

关键字: STM32 时钟系统

在嵌入式系统开发中,STM32系列微控制器的内部温度传感器因其低成本、高集成度特性,广泛应用于设备自检、环境监测等场景。然而,受芯片工艺差异和电源噪声影响,其原始数据存在±1.5℃的固有误差。本文从硬件配置、校准算法、软...

关键字: STM32 温度传感器

轮胎压力监测系统(TPMS)作为现代汽车安全的核心组件,通过实时监测胎压与温度数据,构建起全天候的轮胎健康监护网络。其算法设计需兼顾低功耗运行与高精度异常识别,尤其在直接式TPMS中,传感器需在纽扣电池供电下持续工作5年...

关键字: TPMS 低功耗

在智能家居系统中,无线传感器、控制器等设备对电源的稳定性与能效提出严苛要求。尤其在采用Zigbee协议的场景中,低功耗待机与智能唤醒机制成为延长设备续航、保障网络可靠性的核心设计要素。本文从电源架构设计、Zigbee模块...

关键字: Zigbee 低功耗

在能源效率与智能化需求双重驱动下,AC-DC转换器的数字控制技术正经历从传统模拟方案向全数字架构的深刻变革。基于STM32微控制器的PFM(脉冲频率调制)+PWM(脉冲宽度调制)混合调制策略,结合动态电压调整(Dynam...

关键字: AC-DC STM32

在现代快节奏的生活中,心脏健康问题日益受到人们的关注。心血管疾病已成为威胁人类健康的主要杀手之一,且呈现出年轻化的趋势。传统的心电图检测往往需要在医院进行,不仅耗时费力,而且难以实现日常的实时监测。如今,随着科技的飞速发...

关键字: 心电监测仪 低功耗 利器

在现代电子系统中,电源管理的重要性日益凸显。随着便携式设备、物联网(IoT)设备以及高性能芯片的不断发展,对电源稳压器提出了越来越高的要求。低压差线性稳压器(Low Dropout Regulator,LDO)因其能够在...

关键字: 低功耗 低压差 LDO

当前智能家居产品需求不断增长 ,在这一背景下 ,对现有浇花装置缺陷进行了改进 ,设计出基于STM32单片机的全 自动家用浇花机器人。该设计主要由机械结构和控制系统构成 ,机械结构通过麦克纳姆轮底盘与喷洒装置的结合实现机器...

关键字: STM32 麦克纳姆轮 安全可靠 通过性强

用c++编程似乎是让你的Arduino项目起步的障碍吗?您想要一种更直观的微控制器编程方式吗?那你需要了解一下Visuino!这个图形化编程平台将复杂电子项目的创建变成了拖动和连接块的简单任务。在本文中,我们将带您完成使...

关键字: Visuino Arduino ESP32 STM32
关闭