简单说明:

/*****************************************************************************************************

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简单操作相关推荐

  1. STM32的RTC简单操作

    简单说明: /********************************************************************************************* ...

  2. STM32之RTC实时时钟

    RTC实时时钟简介: STM32的RTC外设,实质是一个掉电后还继续运行的定时器,从定时器的角度来看,相对于通用定时器TIM外设,它的功能十分简单,只有计时功能(也可以触发中断).但是从掉电还能继续运 ...

  3. STM32 HAL RTC配置及优化

    STM32 HAL RTC配置及优化 STM32内部的RTC实时时钟模块,可以配置实现日历和时间的运转,并在外部备用电池的辅助下,可以在主电源关闭的情况下保持运行,且RTC备份寄存器也可以在电池供电状 ...

  4. 关于STM32使用RTC时复位后程序死在 RTC

    在软件仿真时如果不需要配置,则程序会死在 RTC_WaitForSynchro() 函数中.而下载到硬件上时,有时候可以跑,有时候也会在该函数中死循环. 可能的原因: 首先,一定要确认是否使能了对后备 ...

  5. STM32开发 -- RTC详解

    如需转载请注明出处:https://blog.csdn.net/qq_29350001/article/details/81409693 RTC实时时钟部分,之前也是有讲到过的. Hi3516A开发– ...

  6. STM32读取RTC时钟

    STM32读取RTC时钟 一.RTC 1. 简介 2. 特征 3. 组成 二.项目创建 三.代码修改 四.总结 参考 一.RTC 1. 简介 RTC-real time clock,实时时钟,主要包含 ...

  7. Stm32之RTC时钟(2021-07-26)

    Stm32之RTC时钟 1.时钟框图: 先将之前没做笔记的时候的时间框架图补上: 同样源自正点原子的PPT,图中红框的部分为RTC的时钟源,有三种: HSE的128分频: LSI(大概40kHz) L ...

  8. 无法找到CCTV直播MP4地址?七十行代码,简单使用FFplay直接观看还是下载CCTV栏目都轻松搞定(Python利用FLVCD硕鼠解析CCTV直播,FFplay播放并下载视频)

    我们在每天使用新闻的时候大都会以CCTV发布的新闻为准,我们的每天新闻收视率最高的还是我们的总台,大家闲来无事可能也会看一下央视网提供视频直播吧,看看还可以,但是我们可以发现我们完全解析不了,大家看一 ...

  9. 多传感器融合时的时间同步问题解决方案——PPS校准STM32内部RTC

    关于STM32的RTC校准问题,网上讨论很多.个人认为可以分为外部校准和内部校准,外部校准一般采用的是GPS的PPS信号(主要是PPS信号基于原子钟,太准了),但是PPS信号如何对RTC进行校准,网上 ...

最新文章

  1. 看论文不用来回翻了,这款PDF阅读神器能自动提取前文信息,科研效率max!
  2. 小米造车未有定论,鱼和熊掌可否兼得?
  3. Ubuntu下Postgres安装与配置
  4. effective java英文版pdf_Java之Spring1:Spring简介、环境搭建、源码下载及导入MyEclipse...
  5. 【聚类算法】常见的六大聚类算法
  6. 一步一步实现网站的多语言版本
  7. 带你了解线缆、WIFI、以太网协议和网络寻址
  8. ASP.NET和PHP全面对比
  9. prune研究记录(二)
  10. django ForeignKey的swappable属性
  11. 303.区域和检索-数组不可变
  12. 拼多多摄像头是否安全的检测
  13. DIV+CSS布局 - 弹性盒子布局
  14. JS中文乱码解决方案
  15. 学以致用二十四-----shell脚本中的列表及space
  16. mangos修改服务器版本,Mangos魔兽私服服务端GM命令代码集参考
  17. Create an undirected graph from the adjacency list
  18. 【论文翻译】Playing Atari with Deep Reinforcement Learning
  19. 为什么画出的人物是平面,怎样才能画出有立体感的人物
  20. 自己申请计算机软件著作权可以下载电子版原件了?

热门文章

  1. (转)失败和拒绝,也是一种肯定
  2. Python到底有多强大?只需 15 行代码即可进行人脸检测
  3. mysql 5.7 收费_MySQL5.7 常用用户操作
  4. 单片机怎么做定时器矩阵,彻底解决各种定时问题?
  5. 第2关:实现一个链接存储的栈
  6. GRU情感分类问题再战
  7. [USACO07JAN]Protecting the Flowers S
  8. 组合计数 ---- Codeforces 737C Div2 C. Moamen and XOR [多阶段决策计数dp]
  9. szu 寒训复习day #4数论入门详解[修改]用Mardown再改了一下
  10. milp的matlab的案例代码_matlab30个案例分析案例6代码