作用:实时时钟是一个独立的定时器。 RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。 在后备电源存在的时候可以实现掉电保持计数。

以下是我粗略地做了个流程图 大致的配置rtc的步骤

 这里以正点原子哥的示例代码进行讲解

时钟的配置

这里使用的是HAL库版本

首先在回调函数HAL_RTC_MspInit 中对时钟进行配置

从上图可以看到 这里选择的是外部低速时钟 开发板上搭载的时钟源是32. 768KHZ的晶振

 当然我们还不能直接拿来用,我们还要对其进行分频 

这里分频选择的值是 32767 + 1 最后得到的理论值大概是1HZ 差不多一秒钟一次中断

数据的读取与设置

通过阅读参考手册 我们知道rtc数据寄存器的数据读取是有写保护的,首先要将RTC_CR 的 位 RTOFF进行置1才能进行写入,并且每次都是半字写入

参考上面代码 配置过程 其中RTC->CRL位是只读位 当其置1时表示操作完成

然后读操作更简单只要直接进行读取寄存器即可

直接将高低位分别存入即可

后备寄存器

为了上电不重复初始化RTC 那该怎么做呢,这里使用了一种非常秒的方法,在第一次初始化的时候将一个特定的序列值写入BKP寄存器的数据位,然后在下次上电的时候检测是否有写入相应的值,如果有则初始化过 使用直接跳过,否则进行第一次初始化

也就是下面这段函数

小结

最后在附上一张电源的结构框图,因为之前一直不明白 为什么断电还可以继续计数,看到这张图片之后就恍然大悟了 -  -

STM32F103 RTC时钟 配置相关推荐

  1. STM32 RTC时钟掉电日期不更新 STM32 HAL库RTC时钟配置

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 STM32 RTC时钟掉电日期不更新 & STM32 HAL库RTC时钟配置 一.STM32CubeMX RTC配置 二.RT ...

  2. linux c设置rtc时间,linux内核的rtc时钟配置

    linux内核的rtc时钟配置,见Device Drivers  --->Real Time Clock .我们的RTC主要是有三种接口配置,一种是I2C接口,一种是SPI接口,还有就是CPU自 ...

  3. 火牛单片机rtc时钟配置_怎么用STM32F103RTC进行时钟的配置

    #include "sys.h" #include "delay.h" #include "usart.h" #include " ...

  4. stm32 RTC时钟配置

    stm32--RTC实时时钟 一.关于时间 2038年问题 在计算机应用上,2038年问题可能会导致某些软件在2038年无法正常工作.所有使用UNIX时间表示时间的程序都将将受其影响,因为它们以自19 ...

  5. 火牛单片机rtc时钟配置_STM32单片机RTC时钟的使用方法及步骤

    STM32RTC 使用步骤: 打开 PWR 时钟和 Backup 区数据访问 若使用外部低速时钟( LSE ) ,打开 LSE 并等待起振 选择和打开 RTC 时钟,等待时钟同步 配置时间格式,分频系 ...

  6. 火牛单片机rtc时钟配置_亲测实验,RTC使用内部低速时钟LSI时,对RTC的配置过程...

    下面是一开始写程序时,配置过程: char RTCInit() { char count = 0; StartTime.year = 16; StartTime.month = 3; StartTim ...

  7. STM32F103系统时钟配置

    文章目录 一.系统时钟原理图 二.系统时钟配置方法 1.通过汇编进入系统初始化函数(startup_stm32f10x_hd.s) 2.在系统初始化函数SystemInit中调用系统时钟设置函数Set ...

  8. 火牛单片机rtc时钟配置_RTC 实时时钟驱动 - Linux内核之我的天下 - CSDN博客

    RTC实时时钟驱动 -------I2C软件模拟通信 内核版本: linux-2.4.21 文档设计:侯辉华 版本: 1.01 时间: 2007/06/10 内容简介:介绍接在I2C总线上RTC实时时 ...

  9. 火牛单片机rtc时钟配置_STM8单片机rtc时钟的设计

    STM8 rtc 时钟可以使用内部低频时钟源,或者外部低速 32768Hz 时钟源,关 于 rtc 部分代码如下: #include #include voidinit_rtc ( void ) { ...

最新文章

  1. __stdcall in c++ builder
  2. Python基础数据类型之set集合
  3. JAVA学习篇--JSP实现原理
  4. android4.0 菜单,Android 4.0.4系统曝光 增新Power菜单
  5. 【C++第一个Demo】---控制台RPG游戏3【登陆菜单树】
  6. 字符串匹配算法(Trie树)
  7. 第二阶段冲刺10天 第六天
  8. gps有几个轨道面_同样是精准定位,为何GPS只用24颗卫星,北斗却需要55颗卫星?...
  9. 自定义ZXing二维码扫描界面并解决取景框拉伸等问题
  10. 用php解决钱币组合问题,关于若干数组组合的问题 PHP
  11. adb for linux 工具包,Linux(Ubuntu)下配置安装adb工具
  12. python局域网传输文件
  13. Pandas 重置索引深度总结
  14. 信息收集及漏洞利用--安全(四)
  15. C#游戏实例:弹砖块游戏
  16. 三代Pacbio进行细菌16S全长测序
  17. 【力扣刷题】121.买卖股票的最好时机(python)
  18. idea项目管理github无法登陆
  19. 软件开发搞定计算机组成原理:计算篇
  20. 【C语言】函数基础知识点总结

热门文章

  1. 跑步App(室内+室外+分享功能)
  2. 直播系统开发的语言选择
  3. 计算机处理执行最快的,如何提升电脑运行速度(简单快捷处理经验谈)
  4. 王桂林 C++基础与提高 练习题——string数组
  5. openedx 修复课程grades文件下载bug
  6. 币小秘:死灰复燃的雷达币,一定要小心
  7. Linux运维工程师面试题(1)
  8. 关于《设计模式》与《设计模式沉思录》中提到的“常露齿嘻笑的猫”(Cheshire Cat)的说明...
  9. golang爬虫项目Pholcus源码分析(四)
  10. 约瑟夫环问题(Josephus)