STM32F030使用RTC周期性唤醒STOP模式
首先,F030与F072的RTC唤醒功能是不一样的,在相关定义文件stm32f0xx_exti.h中有如下定义:
#define EXTI_Line17 ((uint32_t)0x00020000) /*!< Internal interrupt line 17
Connected to the RTC Alarm
event */
#define EXTI_Line20 ((uint32_t)0x00100000) /*!< Internal interrupt line 20
Connected to the RTC wakeup
event, only applicable for
STM32F072 devices */
也就是最好用最正宗的RTC唤醒功能(EXTI_Line20)只能用在F072上,不能用于F030,所以只能使用RTC Alarm( EXTI_Line17) 方式来唤醒RTC。
RTC设置流程如下:
1.初始设置RTC的秒时钟:
RTC_InitStructure.RTC_AsynchPrediv
RTC_InitStructure.RTC_SynchPrediv
计算方法:LSI=40000HZ;
LSI/(RTC_AsynchPrediv+1)/(RTC_SynchPrediv +1) =1
2.开启RTC中断及NVIC
/* EXTI configuration */
EXTI_ClearITPendingBit(EXTI_Line17);
EXTI_InitStructure.EXTI_Line = EXTI_Line17;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
NVIC_InitStruct.NVIC_IRQChannel = RTC_IRQn;
NVIC_InitStruct.NVIC_IRQChannelPriority = 1;
NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
3.每次进入休眠之前,都要设置闹钟RTC Alarm
RTC_AlarmStructure.RTC_AlarmTime.RTC_H12 = RTC_H12_AM;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Hours = 0x01;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Minutes = 0x00;
RTC_AlarmStructure.RTC_AlarmTime.RTC_Seconds = nDelayCNT;//0x05;
RTC_AlarmStructure.RTC_AlarmDateWeekDay = 0x31;
其中nDelayCNT就是需要达到的唤醒时间长度,单位是秒(s).
至此,就算是把RTC唤醒搞定了 ,当然还有包括其他比如时钟RCC的设置,暂时以官方例程为准。
STM32F030使用RTC周期性唤醒STOP模式相关推荐
- STM32CubeMX(stm32F030C8T6) 之RTC闹钟唤醒停机模式-STM32开发实战 (2)
一.概述 本例程是用STOP休眠模式,用RTC的周期性自动唤醒功能来唤醒芯片. 根据手册的说明:这里有个可编程的可自动重装的向下计数器,按照相应的时钟频率赋予适当的值,每当向下计数到0时便产生一个唤醒 ...
- STM32的RTC闹钟唤醒待机模式
通过RTC闹钟不能唤醒待机模式下的STM32,但是当注释掉下面这一句程序的时候,就能通过RTC闹钟唤醒. PWR_WakeUpPinCmd(ENABLE);//使能唤醒管脚功能 这就给我们一种错误的判 ...
- stm32单片机实现多个闹钟_STM32实现对RTC闹钟唤醒的设计
工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制的外设有些不妥,想过外部上拉一个电阻可是功耗不好控制放弃该方案选用停止模式.停止模式后IO口保持停止 ...
- [STM32F1]STM32 低功耗待机模式与RTC周期唤醒
STM32等类似Cortex-M3的MCU在系统或电源复位以后,MCU就会处于程序运行状态.当用户不需继续运行程序时,可以利用进入低功耗模式来节省电池电量,当需要重新运行时,可以通过特定条件进行唤醒程 ...
- STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例)
STM32CubeMX | STM32 F1系列HAL库低功耗STOP和STANDBY模式唤醒(RTC时钟唤醒+外部中断唤醒示例) 目录 STM32CubeMX | STM32 F1系列HAL库低功耗 ...
- TM32L0系列之02 RTC唤醒待机模式
STM32L0系列之02 RTC唤醒待机模式 前言 使用芯片:STM32L051R8T6 软件平台:KEIL V5.STM32CubeL0 库函数:HAL 一.硬件介绍 1.单片机的系统时钟为:32M ...
- 超低功耗研发-STM32L151C8T6芯片(三)RTC自动唤醒机制
超低功耗产品必然涉及到"唤醒"机制,唤醒后执行 正常的功能代码,这个"唤醒"动作有多种,基本上有外部中断.中断事件.RTC自动唤醒等,外部中断多是IO口中断,比 ...
- ESP32 使用 RTC_GPIO 唤醒 Deep-Sleep 模式
此例程是使用 GPIO4( 对应 RTC_GPIO10) 触发高电平,来唤醒 Deep-Sleep 模式. ESP-IDF 版本为 v4.3.1 版本. 测试代码如下: /* ESP32 Deep-s ...
- 三种方法教你开启/关闭win10系统唤醒睡眠模式时需要登录的教程
Windows系统的睡眠设置给我们带来了极大的方便,因为使用睡眠设置可以保存我们电脑的当前工作状态,再次唤醒睡眠模式时我们可以接着当前的工作状态继续操作,但默认情况下,系统处于安全考虑,当我们从睡眠模 ...
- STM32通过串口进入和唤醒停止模式
STM32 具有运行.睡眠.停止和待机四种工作模式.上电复位后 STM32 处于运行状态,当内核不需要继续运行,就可以选择进入后面的三种低功耗模式降低功耗,这三种模式中,电源消耗不同.唤醒时间不同.唤 ...
最新文章
- apue第四章习题的一些拙见(不定时更新)
- UESTC 2015dp专题 E 菲波拉契数制 dp
- 算法每日练习之判断完数
- 在Linux上编译LLVM/Clang 8.0.0等全部源代码
- node:http协议、sql、接口
- js 时间戳转换成时间_JavaScript 时间戳转成日期格式
- 【好文推荐】mysql创建数据库语句utf-8
- sql2000-2 4/19
- 【经典回顾】静态结构不能满足模型部署性能需求?微软提出动态卷积结构,Top-1准确率提高2.9%!(附复现代码)...
- win11亮度调节不见了怎么办 windows亮度调节不见了的解决方法
- 微设计(www.weidesigner.com)介绍系列文章(三)
- 【STM32 .Net MF开发板学习-09】AD模拟量采集
- 图元变形lisp源码_CAD lisp 实用小程序(源代码)
- 为精简版VS2008添加DEBUG版运行时库到系统目录
- 事件委托(代理)的理解
- 超链接 番茄札记 html,番茄学习法笔记以及初始尝试
- android 点击热区,扩大UIButton点击热区
- INS/GPS组合导航类型简介
- ZZULIOJ:1123:最佳校友
- 国家开放大学2021春1054流通概论题目