RTC实时时钟

简介

RTC时钟是一个独立的定时器,可以在后备电源不掉电的情况下一直运行。在对应的软件配置下一般可以做时钟日历功能。

RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即使系统复位或者待机唤醒后RTC的设置和时间都维持不变。但是在系统复位后,会自动禁止访问后备寄存器和RTC,以防止对后备区域(BKP)的意外写操作。所以在设置时间之前,要取消备份区域(BKP)写保护。

RTC框图

灰色部分属于后备区域,在VDD掉电的情况下可在V~BAT~的驱动下继续工作 。这部分包括RTC的分频器,计数器以及闹钟控制器。

(1)APB1接口:用来和APB1总线连接,通过APB1总线可以访问RTC相关寄存器,对齐进行读写操作。

(2)RTC核心:由一组可编程计数器组成,分成两个模块。第一个模块是RTC的预分频模块,它可以编程产生一个1秒的RTC时间基准TR_CLK,RTC的预分频模块包括了一个20位的可编程分频器(预分频器)。如果在RTC_CR寄存器中设置了相应的允许位,则在每个TR_CLK周期中RTC产生一个中断(秒中断)。第二个模块是一个32位可编程计数器,可被初始化位当前系统的时间,一个32位计数器,按秒钟计算,可以记录的时间长达136年之久。

RTC还有一个闹钟寄存器RTC_ALR,用于产生闹钟,如果RTC中的可编程计数器与RTC_ALR寄存器中的可编程时间相等,且在RTC_CR控制寄存器中设置了相应允许位,比较匹配时将产生一个闹钟中断。

由于备份域的存在,所以 RTC 内核可以完全独立于 RTC APB1 接口。而软件是通过 APB1接口访问 RTC 的预分频值、计数器值和闹钟值的。但是相关可读寄存器只在 RTC APB1 时钟进行重新同步的 RTC 时钟的上升沿被更新, RTC 标志也是如此。这就意味着,如果 APB1 接口刚刚被开启之后,在第一次的内部寄存器更新之前,从 APB1 上读取的 RTC 寄存器值可能被破坏了(通常读到 0)。因此,若在读取 RTC 寄存器曾经被禁止的 RTC APB1 接口,软件首先必须等待 RTC_CRL 寄存器的 RSF 位(寄存器同步标志位, bit3)被硬件置 1。

RTC寄存器

相关推荐
嵌入式小章6 小时前
基于STM32的实时时钟(RTC)教学
stm32·嵌入式硬件·实时音视频
wenchm4 天前
细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的方法
stm32·单片机·实时音视频
Starry-sky(jing)6 天前
边缘计算【智能+安全检测】系列教程--agx orin解决RTC时间问题
linux·人工智能·目标检测·边缘计算·实时音视频
weichushun7 天前
STM32 RTC时间无法设置和读取
stm32·嵌入式硬件·实时音视频
LightningJie8 天前
STM32的hal库在实现延时函数(例如:Delay_ms 等)为什么用滴答定时(Systick)而不是定时器定时中断,也不是RTC?
stm32·单片机·实时音视频
Tracy97312 天前
空间音频技术
大数据·人工智能·音视频·语音识别·实时音视频
棱角~~13 天前
市面上热门的四款PDF转换器解析!!
人工智能·其他·pdf·音视频·实时音视频·学习方法
音视频牛哥13 天前
480p 720p 1080p 2k 4k 8k 12k分辨率视频分别占用多大带宽?
音视频·实时音视频·大牛直播sdk·8k编码·12k编码·rtmp 4k·rtmp 8k
棱角~~14 天前
百度翻译以及另外三款翻译工具推荐!!!
前端·经验分享·其他·音视频·实时音视频·1024程序员节