STM32F407ZET6的RTC闹钟二次设置笔记
在研究让用户可以通过矩阵键盘输入更改闹钟时,遇到数值传递后没有触发闹钟中断函数的情况。
经过反复测试记录下需要的步骤。
RTC闹钟设置步骤为:
//配置RTC闹钟A
void RTC_SetAlarm_AInit(void)
{
RTC_AlarmTypeDef RTC_AlarmStruct;
RTC_TimeTypeDef RTC_AlarmTime;
EXTI_InitTypeDef EXTI_InitStructure;
NVIC_InitTypeDef NVIC_InitStructure;
//1、关闭闹钟:
RTC_AlarmCmd(RTC_Alarm_A,DISABLE);
//2、闹钟时间设置
RTC_AlarmTime.RTC_H12 = RTC_H12_AM; //上午
RTC_AlarmTime.RTC_Hours = 1; //时
RTC_AlarmTime.RTC_Minutes = 19; //分
RTC_AlarmTime.RTC_Seconds = 0; //秒
RTC_AlarmStruct.RTC_AlarmTime = RTC_AlarmTime; //时间设置
RTC_AlarmStruct.RTC_AlarmMask = RTC_AlarmMask_None; //无掩码位,则表示按实际时间响应闹钟
RTC_AlarmStruct.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date; //按日期响应
RTC_AlarmStruct.RTC_AlarmDateWeekDay = 11; //2号
//3、配置闹钟参数:
RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStruct);
EXTI_InitStructure.EXTI_Line = EXTI_Line17; //中断线17
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //中断模式
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //选择上升沿触发
EXTI_InitStructure.EXTI_LineCmd = ENABLE; //中断线使能
//4、外部中断事件控制器初始化
EXTI_Init(&EXTI_InitStructure);
NVIC_InitStructure.NVIC_IRQChannel = RTC_Alarm_IRQn; //选择中断通道 在stm32f4xx.h中查找
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; //抢占优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 11; //响应优先级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //通道使能
NVIC_Init(&NVIC_InitStructure);
//5、配置为闹钟A中断,启用指定的RTC中断。
RTC_ITConfig(RTC_IT_ALRA, ENABLE);
//6、开启闹钟:
RTC_AlarmCmd(RTC_Alarm_A,ENABLE);
}
而二次设置闹钟时若要让新的闹钟时间仍然触发闹钟中断。
至少需要:
RTC_AlarmTypeDef RTC_AlarmStruct;
RTC_TimeTypeDef RTC_AlarmTime;
//1、关闭闹钟:
RTC_AlarmCmd(RTC_Alarm_A,DISABLE);
//2、闹钟时间设置
RTC_AlarmTime.RTC_H12 = RTC_H12_AM; //上午
RTC_AlarmTime.RTC_Hours = 1; //时
RTC_AlarmTime.RTC_Minutes = 24; //分
RTC_AlarmTime.RTC_Seconds = 0; //秒
RTC_AlarmStruct.RTC_AlarmTime = RTC_AlarmTime; //时间设置
RTC_AlarmStruct.RTC_AlarmMask = RTC_AlarmMask_None; //无掩码位,则表示按实际时间响应闹钟
RTC_AlarmStruct.RTC_AlarmDateWeekDaySel = RTC_AlarmDateWeekDaySel_Date; //按日期响应
RTC_AlarmStruct.RTC_AlarmDateWeekDay = 11; //11号
//3、配置闹钟参数:
RTC_SetAlarm(RTC_Format_BIN, RTC_Alarm_A, &RTC_AlarmStruct);
//4、开启闹钟:
RTC_AlarmCmd(RTC_Alarm_A,ENABLE);
闹钟数值修改必须先关闭闹钟,且同时需要同时设置时间和日期,最后再次开启闹钟。
STM32F407ZET6的RTC闹钟二次设置笔记相关推荐
- GD32F4—RTC闹钟及自动唤醒中断配置详解
GD32F4-RTC闹钟及自动唤醒中断配置详解 一.简介 二.框图 三.RTC 初始化和配置 一.简介 GD32F4x的RTC例程网上资源较少,详细阅读用户手册后做出如下配置.RTC模块提供了一个包含 ...
- STM32CubeMX(stm32F030C8T6) 之RTC闹钟唤醒停机模式-STM32开发实战 (2)
一.概述 本例程是用STOP休眠模式,用RTC的周期性自动唤醒功能来唤醒芯片. 根据手册的说明:这里有个可编程的可自动重装的向下计数器,按照相应的时钟频率赋予适当的值,每当向下计数到0时便产生一个唤醒 ...
- stm32独立看门狗和rtc闹钟
独立看门狗 1.独立看门狗概述 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会 ...
- STM32:RTC闹钟唤醒
想使用闹钟唤醒功能使系统从待机下唤醒,遇到一个问题:使用闹钟唤醒就不能使用wakeup pin唤醒.二者只能取其一. 此问题解决,画了个板子wakeup pin 接下拉电阻解决. 写新代码时候遇到一个 ...
- CM3计算板RTC闹钟唤醒系统
1.前言 一个周期性控制系统的核心为CM3计算板,在电池供电情况下要求尽可能提高使用时长.由于系统空闲时长较多,因此在考虑低功耗的情况下将系统关机以进一步降低功耗.需要注意的是,系统关机后需要在指定时 ...
- STM32HAL库RTC闹钟事件
最近遇到stm32f系列看门狗不能关闭的事情,需要开启RTC闹钟定时唤醒喂狗.这里给RTC闹钟打一个标签把,我设置为每20秒开启一次闹钟. 首先是HAL库的配置 配置时钟: 选择下载方式 选择时钟和 ...
- STM32F030的低功耗案例(RTC闹钟中断定时唤醒喂狗+按键外部中断唤醒)
最近使用到低功耗方案,采用的是STM32F030C8T6芯片,由于任务开启了看门狗,进入休眠后(采用的是STOP模式),需要及时喂狗,故而使用RTC闹钟中断定时唤醒来喂狗. 对比三种休眠模式:就设备的 ...
- stm32单片机实现多个闹钟_STM32实现对RTC闹钟唤醒的设计
工程中用到低功耗的控制,本来想使用待机模式,后来发现待机后所有IO口为高阻态,这样对于一些IO口控制的外设有些不妥,想过外部上拉一个电阻可是功耗不好控制放弃该方案选用停止模式.停止模式后IO口保持停止 ...
- STM32的RTC闹钟中断 总算整明白了
转载:http://www.openedv.com/posts/list/22055.htm STM32的RTC闹钟中断 总算整明白了 现在用到了STM32的闹钟中断 去唤醒停机模式下的系统 看STM ...
最新文章
- CentOS包管理器yum
- spring 依赖注入
- 一行代码,搞定浏览器数据库 IndexedDB
- java基础学习,一些零散的笔记之内部类
- Linux查看文件夹大小的相关命令
- 前端学习(1269):axios的拦截器
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-02 单表查询
- git bitbucket_如何在Bitbucket上创建新的Git存储库并查看提交的对象
- oracle试图怎么使用,oracle 视图的介绍和使用
- MSSQL 2000更改表和存储过程的所有者
- day68_淘淘商城项目_01
- 交换排序图解_动画图解十个经典排序算法
- 【ANSYS命令流】Workbench中施加流体渗透压力载荷(超详细)
- 18、HX1838红外遥控模块控制led
- 如何获取 iOS 设备 UDID?
- Solr搜索引擎原理
- 解读京东“拉黑门”:被拐弯的真相
- 红光光浴到底有没有用#大健康#红光光浴#红光#种光光学
- 豫让刺杀赵襄子故事原文/白话文翻译?士为知己者死,女为说己者容出自哪?
- AtCoder Beginner Contest 167 F.Bracket Sequencing
热门文章
- linux加载的驱动无法卸载,Linux驱动模块卸载后不能再加载、驱动不能卸载的问题(转)...
- Excel实现自动显示日期且不自动改变
- Eolink 11月企业与产品动态速览!
- 麒麟linux代码行界面颜色,查看“麒麟”的源代码
- Ubuntu16.06 单Nvidia显卡 深度学习运行时 界面卡顿(刷新慢)的解决方法
- dq坐标系下无功功率表达式_基于瞬时电流分解的谐波电流检测方法研究
- 操作Python列表Ⅰ
- 电脑卡,电脑比较卡问题都出在这里,怎么解决电脑卡顿方法
- MYSQL登录遇到的问题:解决ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘(10061)
- 推荐一款好用的GIF录屏软件(ScreenToGif)