关于STM32使用RTC唤醒停止模式的设置
工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制的外设有些不妥,想过外部上拉一个电阻可是功耗不好控制放弃该方案选用停止模式。停止模式后IO口保持停止前的状态,但是不像待机模式那样可以轻松通过闹钟唤醒,只能通过中断线实现唤醒。为了实现RTC闹钟唤醒搜得一段代码,现贴过来分析一下。
void RTC_EXTI_INITIAL(FunctionalState interrupt_en_or_dis)
{
NVIC_InitTypeDef NVIC_InitStructure;
EXTI_InitTypeDef EXTI_InitStructure;
//------------EXTI17 配置 -------------------
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = interrupt_en_or_dis;
EXTI_Init(&EXTI_InitStructure);
//------------设置 中断-------------------
NVIC_InitStructure.NVIC_IRQChannel = RTCAlarm_IRQn;//防拆
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
NVIC_InitStructure.NVIC_IRQChannelCmd = interrupt_en_or_dis;
NVIC_Init(&NVIC_InitStructure);
//-------------------------------------------
}
void RTC_SET_ALARM(u32 sec)
{
//DEBUG_COM_STREAM("-闹钟-",NULL);
RTC_SetAlarm(RTC_GetCounter()+sec);
//DEBUG_COM_STREAM("-闹钟1-",NULL);
RTC_WaitForLastTask();
//DEBUG_COM_STREAM("-闹钟2-",NULL);
RTC_ITConfig(RTC_FLAG_ALR,ENABLE);
}
void RTC_AWU_SET(void)
{
//启用PWR和BKP的时钟(from APB1)
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
//后备域解锁
PWR_BackupAccessCmd(ENABLE);
RTC_ITConfig(RTC_IT_SEC, DISABLE);
RTC_SET_ALARM(5);
//PWR_BackupAccessCmd(DISABLE);
RTC_EXTI_INITIAL(ENABLE);
}
void RTCAlarm_IRQHandler(void)
{
EXTI_ClearITPendingBit(EXTI_Line17);
//SYS.wake_id|=1<<17;
}
void RTC_IRQHandler(void)
{
if (RTC_GetITStatus(RTC_IT_SEC) != RESET)
{
RTC_ClearITPendingBit(RTC_IT_SEC);
RTC_WaitForLastTask();
//TIME_COUNT=RTC_GetCounter();
//RTC_WaitForLastTask();
}
if (RTC_GetITStatus(RTC_FLAG_ALR) != RESET)
{
RTC_ClearITPendingBit(RTC_FLAG_ALR);
RTC_WaitForLastTask();
//SYS.wake_id|=1<<1;
}
}
对于上述代码说明3点问题:
(1)为什么设置中断线17
STM32F10x有20条中断线,其中16条用于IO口中断使用,还有4条用于内部中断事件。EXTI17就是用于内部RTC闹钟唤醒中断事件时使用,所以初始化中除了打开RTC闹钟中断同时打开了EXTI17中断线。
(2)为什么RTC闹钟中断服务程序清除EXTI17中断标志位?
因为中断线17接到了RTC闹钟上,RTC闹钟中断后会触发中断线17产生中断事件,所以在RTC中断内清除标志位,这同时是RTC闹钟唤醒停止模式的原因。具体看下图手册描述
(3)唤醒后程序在哪执行?
通过实验得到当系统唤醒后程序是在原停止位置顺序向下执行。
PS:唤醒后时钟源默认切换到内部高速时钟(HSI)所以使用外部晶振的需要重新配置时钟系统
关于STM32使用RTC唤醒停止模式的设置相关推荐
- STM32通过串口进入和唤醒停止模式
STM32 具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中,电源消耗不同.唤醒时间不同.唤 ...
- TM32L0系列之02 RTC唤醒待机模式
STM32L0系列之02 RTC唤醒待机模式 前言 使用芯片:STM32L051R8T6 软件平台:KEIL V5.STM32CubeL0 库函数:HAL 一.硬件介绍 1.单片机的系统时钟为:32M ...
- STM32超低功耗入门之停止模式
一. 认识停止模式 STM32L4 系列提供了 3 种停止模式:stop0 , stop1 , stop2. 功耗逐次更低. 通过上图可以得出结论: stop0 模式有 2 种电压调节器方案.stop ...
- stm32f103停止模式低功耗设置(最低5.7ua)
刚开始进入STOPMode后,整机功耗有300uA的,此时外围其他硬件电路电流已经可以肯定漏电流在nA级,因此调试方向在主芯片,经过实际测试,都是GPIO配置的问题,比如某个GPIO为中断输入,闲置为 ...
- STM32CubeMX学习笔记(16)——电源管理(PWR)低功耗停止模式
一.低功耗模式简介 系统提供了多个低功耗模式,可在 CPU 不需要运行时(例如等待外部事件时)节省功耗.由用户根据应用选择具体的低功耗模式,以在低功耗.短启动时间和可用唤醒源之间寻求最佳平衡. 睡眠模 ...
- 【STM32笔记】HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒、串口唤醒和回调无法一起使用、接收数据不全的问题)
[STM32笔记]HAL库低功耗STOP停止模式的串口唤醒(解决进入以后立马唤醒.串口唤醒和回调无法一起使用.接收数据不全的问题) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csd ...
- 【STM32笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)
[STM32笔记]低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER) [STM32笔记]低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_5340 ...
- STM32的RTC闹钟唤醒待机模式
通过RTC闹钟不能唤醒待机模式下的STM32,但是当注释掉下面这一句程序的时候,就能通过RTC闹钟唤醒. PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功能 这就给我们一种错误的判 ...
- STM32停止模式唤醒不恢复时钟的后果
关于STM32的低功耗详细解析请在 STM32低功耗模式解读中查看,在里面讲到当STM32在停止模式时,芯片1.8V区域时钟别关闭,HSI,HSE时钟也被关闭,当某个使能的中断或事件发生后,STM32 ...
- STM32 待机模式 和 停止模式 RTC闹钟调试笔记
待机模式 不进入待机模式 闹钟中断服务函数可以进去 进入待机模式WakeUp唤醒后能否进入闹钟中断服务函数 1.待机模式唤醒后,不会进入闹钟中断服务函数,所以会导致wakeup唤醒后,此时闹钟唤醒时间 ...
最新文章
- Database Appliance并非Mini版的Exadata-还原真实的Oracle Unbreakable Database Appliance
- 万能make file
- 二次拟合r方_R方和线性回归拟合优度
- 单位矩阵的逆矩阵是它本身吗_矩阵运算、单位矩阵与逆矩阵(二)
- 苹果推送iOS 15.0.1版本 修复涉及iPhone 13的Bug
- 人人都是程序员?一边吐槽,一边却偷偷用,低代码工具真香
- 关于TFS的文档和报告打叉的解决
- 使用SniperPhish进行电子邮件钓鱼
- 西电计算机网络ppt,《西安电子科技大学》PPT课件
- 服务器系统安装蓝牙驱动,Atheros Bluetooth蓝牙设备驱动
- 谈业务流程全生命周期管理支撑业务流程再造(2)
- python调用函数库_python调用操作系统的库函数
- Gitter:高颜值GitHub小程序客户端诞生记
- MYSQL数据库学习总结
- 嫁人就要嫁程序员,钱多话少死得早!
- 模型量化(1):模型量化简介
- Unity---Shader
- 95文件及文件夹操作实践
- 第一次冲刺--查看活动详情用户场景分析
- android 来电解锁,带你解锁手机隐藏黑科技,极少人知道!