(七)STM32的RTC简单操作
简单说明:
/*****************************************************************************************************
1、RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域中。其断电时靠备份电源供电可继续维持其功能。所以RTC的使用同时涉及到BKP(备份寄存器)和PWR(电源控制),还需对它们进行配置。
2、由于RTC之前可能已配置(不是第一次使用),它断电时若有备份电源时,其仍在工作,若如此,我们上电后的程序就要考虑是否还要重新配置,若重新配置,之前的就会“灰飞烟灭”;所以,当我们是第一次使用或没有备份时,我们就配置RTC,若之前已配置,我们就不调用,直接使用。在本例中写一个值到BKP_DR1中以标示RTC是否已配置,在启动之后程序检查BKP_DR1的值。(1)若BKP_DR1的值不正确:(BKP_DR1的值有误或者由于是第一次运行值还未写进去),则需要配置RTC(2) 若BKP_DR1的值正确,则意味着RTC已配置.
******************************************************************************************************************/
1.首先,需要用到BKP和PWR,则当然要使能其时钟咯。 因为RTC的一些设置是保存在后备域中的,so,操作RTC的设置寄存器前,要打开后备域模块中的写保护功能。调用函数PWR_BackupAccessCmd(ENABLE);
2.接着,我们使用LSE作为RTC的时钟,则需要进行相应时钟的配置;配置完后就可以开启RTC时钟;开启后,还需等待APB1时钟与RTC时钟同步(调用RTC_WaitForSynchro())才能读写RTC寄存器;
3.我们对RTC进行写入操作之前,都要检查命令有没有完成,调用RTC_WaitForLastTas()即可;我们要对寄存器写入哪些值呢?分频数、操作中断等。
4.因为我们要在BKP中加入RTC校验功能,所以还需调用函数BKP_TamperPinCmd(DISABLE)失能侵入检测功能。RTC时钟经64分频输出到侵入检测引脚TAMPER上,可调用BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock)来实现;
5.当然,要用到中断、串口,肯定要进行相应配置的。
6.中断函数在stm32f10x_it.c文件中编写,注意每一种中断都有其指定的中断服务函数名称,如果自己胡乱该名称,编译器是不能识别是该类中断的。
7.注意:不管我们是否需要重新配置RTC,每次系统复位都需要执行如下操作:打开PWR和BKP外设时钟、打开后备区域的写保护功能(系统复位后,对后备寄存器和RTC的访问被禁止)、使能RTC时钟();具体函数如下:RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
PWR_BackupAccessCmd(ENABLE);
RCC_RTCCLKCmd(ENABLE);(若不调用该函数,就会在 RTC_WaitForSynchro() 函数中死循环,等待RTC时钟同步)。
(七)STM32的RTC简单操作相关推荐
- STM32的RTC简单操作
简单说明: /********************************************************************************************* ...
- STM32之RTC实时时钟
RTC实时时钟简介: STM32的RTC外设,实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断).但是从掉电还能继续运 ...
- STM32 HAL RTC配置及优化
STM32 HAL RTC配置及优化 STM32内部的RTC实时时钟模块,可以配置实现日历和时间的运转,并在外部备用电池的辅助下,可以在主电源关闭的情况下保持运行,且RTC备份寄存器也可以在电池供电状 ...
- 关于STM32使用RTC时复位后程序死在 RTC
在软件仿真时如果不需要配置,则程序会死在 RTC_WaitForSynchro() 函数中.而下载到硬件上时,有时候可以跑,有时候也会在该函数中死循环. 可能的原因: 首先,一定要确认是否使能了对后备 ...
- STM32开发 -- RTC详解
如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81409693 RTC实时时钟部分,之前也是有讲到过的. Hi3516A开发– ...
- STM32读取RTC时钟
STM32读取RTC时钟 一.RTC 1. 简介 2. 特征 3. 组成 二.项目创建 三.代码修改 四.总结 参考 一.RTC 1. 简介 RTC-real time clock,实时时钟,主要包含 ...
- Stm32之RTC时钟(2021-07-26)
Stm32之RTC时钟 1.时钟框图: 先将之前没做笔记的时候的时间框架图补上: 同样源自正点原子的PPT,图中红框的部分为RTC的时钟源,有三种: HSE的128分频: LSI(大概40kHz) L ...
- 无法找到CCTV直播MP4地址?七十行代码,简单使用FFplay直接观看还是下载CCTV栏目都轻松搞定(Python利用FLVCD硕鼠解析CCTV直播,FFplay播放并下载视频)
我们在每天使用新闻的时候大都会以CCTV发布的新闻为准,我们的每天新闻收视率最高的还是我们的总台,大家闲来无事可能也会看一下央视网提供视频直播吧,看看还可以,但是我们可以发现我们完全解析不了,大家看一 ...
- 多传感器融合时的时间同步问题解决方案——PPS校准STM32内部RTC
关于STM32的RTC校准问题,网上讨论很多.个人认为可以分为外部校准和内部校准,外部校准一般采用的是GPS的PPS信号(主要是PPS信号基于原子钟,太准了),但是PPS信号如何对RTC进行校准,网上 ...
最新文章
- 看论文不用来回翻了,这款PDF阅读神器能自动提取前文信息,科研效率max!
- 小米造车未有定论,鱼和熊掌可否兼得?
- Ubuntu下Postgres安装与配置
- effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...
- 【聚类算法】常见的六大聚类算法
- 一步一步实现网站的多语言版本
- 带你了解线缆、WIFI、以太网协议和网络寻址
- ASP.NET和PHP全面对比
- prune研究记录(二)
- django ForeignKey的swappable属性
- 303.区域和检索-数组不可变
- 拼多多摄像头是否安全的检测
- DIV+CSS布局 - 弹性盒子布局
- JS中文乱码解决方案
- 学以致用二十四-----shell脚本中的列表及space
- mangos修改服务器版本,Mangos魔兽私服服务端GM命令代码集参考
- Create an undirected graph from the adjacency list
- 【论文翻译】Playing Atari with Deep Reinforcement Learning
- 为什么画出的人物是平面,怎样才能画出有立体感的人物
- 自己申请计算机软件著作权可以下载电子版原件了?
热门文章
- (转)失败和拒绝,也是一种肯定
- Python到底有多强大?只需 15 行代码即可进行人脸检测
- mysql 5.7 收费_MySQL5.7 常用用户操作
- 单片机怎么做定时器矩阵,彻底解决各种定时问题?
- 第2关:实现一个链接存储的栈
- GRU情感分类问题再战
- [USACO07JAN]Protecting the Flowers S
- 组合计数 ---- Codeforces 737C Div2 C. Moamen and XOR [多阶段决策计数dp]
- szu 寒训复习day #4数论入门详解[修改]用Mardown再改了一下
- milp的matlab的案例代码_matlab30个案例分析案例6代码