Stm32 RTC周期唤醒待机模式

news/2024/10/28 20:20:45/

Stm32 RTC周期唤醒待机模式

一、前言

二、开发环境

1、软件:CubeMX+MDK

2、硬件:超纬电子-NB开发板

三、参考资料

四、实现过程

1、配置CubeMX

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190618181038255.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NhZGZkc2ZmZg==,size_16,color_FFFFFF,t_70
在这里插入图片描述
在这里插入图片描述

2、程序修改

2.1、添加 wukeup函数,通过调用函数进入待机模式

void WKUP_EnterStandby(void)
{__HAL_RCC_APB2_FORCE_RESET();__HAL_RCC_PWR_CLK_ENABLE();__HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1);HAL_PWR_EnterSTANDBYMode();
}

2.2、调用WKUP_EnterStandby()进入待机模式

while(1)
{//{if} 检测按键是否被按下,按键被按下,调用WKUP_EnterStandby()进入待机模式if (KEY_NonBlockingKey2Scan())	{			WKUP_EnterStandby();}
}

通过以上简单操作,就完成了RTC定时换新功能,在每次进入待机模式后,延时15秒后会自动唤醒,系统将重新运行,并且在待机的过程中,给PA0已经一个下降沿,即可提前唤醒单片机。

2.3、程序说明

以下代码是cubeMX自动生成的,进行相关说明

//{fun} 每次发生唤醒中断会自动调用此函数处理
void RTC_WKUP_IRQHandler(void)
{/* USER CODE BEGIN RTC_WKUP_IRQn 0 *//* USER CODE END RTC_WKUP_IRQn 0 */HAL_RTCEx_WakeUpTimerIRQHandler(&hrtc);/* USER CODE BEGIN RTC_WKUP_IRQn 1 *//* USER CODE END RTC_WKUP_IRQn 1 */
}void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
{  /* Get the pending status of the WAKEUPTIMER Interrupt */if(__HAL_RTC_WAKEUPTIMER_GET_FLAG(hrtc, RTC_FLAG_WUTF) != RESET){/* WAKEUPTIMER callback */ HAL_RTCEx_WakeUpTimerEventCallback(hrtc);//cubeMX自动帮我们清楚了待机标志位,所以我们在程序中不需要再手动清除/* Clear the WAKEUPTIMER interrupt pending bit */__HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(hrtc, RTC_FLAG_WUTF);}/* Clear the EXTI's line Flag for RTC WakeUpTimer */__HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG();/* Change RTC state */hrtc->State = HAL_RTC_STATE_READY;
}

五、配套资料


http://www.ppmy.cn/news/503405.html

相关文章

怎样把LoRa模块功耗降到极致

怎样把LoRa模块功耗降到极致 一. 引言 能耗对于电池供电的产品来说是一个重大的问题,一旦电能耗尽设备将“罢工”,在某些场合电能意味着电子产品的生命。物联网时代将会有越来越多电池供电的设备通过无线通信连接,降低能耗再次摆在工程师…

安卓系统耗电太快?针对wakelock(唤醒锁)的设置优化教程

导读: android为了确保应用程序的正确执行,提供了wakelock(唤醒锁)的api,wakelock是一种锁的机制,只要有应用拿着这个锁,系统就无法进入休眠,手机耗电的问题,其实大部分是这个锁正不正常的问题。 手机上应…

root后待机耗电,手机root后耗电

手机获取了root对手机耗电有影响? 手机获取ROOT权限后一般情况下都不会对手机耗电有影响,甚至将ROOT权限授予安全软件后,还可以一定程度上减少耗电量,增加手机待机时间。 手机获取ROOT权限的主要危害: 1.第三方的恶意软件可以利用…

待机唤醒实验

在系统或电源复位以后,微控制器处于 运行状态。运行状态下的 HCLK 为 CPU 提供时钟,内核执行程序代码。当 CPU 不需继续运行 时,可以利用多个低功耗模式来节省功耗,例如等待某个外部事件时。 STM32的3种低功耗模式: ①…

STM32L0系列单片机低功耗(STOP)使用+RTC唤醒+LPUART(DMA方式)唤醒+LPTIM唤醒

文章目录 STM32L0低功耗应用1.睡眠模式2.低功耗运行模式3.低功耗睡眠模式4.带RTC的停止模式5.不带RTC的停止模式6.带RTC待机模式7.不带RTC待机模式 进入STOP模式LPUART在DMA模式下唤醒STOP STM32L0低功耗应用 STM32L0支持7种低功耗模式,本文重点讨论停止(STOP)模式…

在 iPhone 上使用 “抬起唤醒”功能

今天给大家带来的是如何在 iPhone 上使用 “抬起唤醒”功能,还不知道如何操作的朋友,可以按照这个方法试试哦。 抬起激活 “提起激活”的优势在于,您只需拿起iPhone并查看屏幕即可。这很有用,例如,如果您想查看现在几…

[STM32F1]STM32 低功耗待机模式与RTC周期唤醒

STM32等类似Cortex-M3的MCU在系统或电源复位以后,MCU就会处于程序运行状态。当用户不需继续运行程序时,可以利用进入低功耗模式来节省电池电量,当需要重新运行时,可以通过特定条件进行唤醒程序继续或重新工作。特别是在电池供电的…

STM8L101+si4463低功耗和自动唤醒配置

刚开始接触RF通信,借助成都亿佰特的demo很快完成了数据互传,但是功耗一直降不下去,ST和SiliconLabs官方的datasheet里分别说STM8L101在halt模式功耗为1uA(开AWU的情况下)、SI4463在standby模式为50nA,但是即…