RTC 是一个独立的定时器,能够在 STM32 的低功耗模式下运行。
选择 RTC 时钟源
RTC 时钟的时钟源能够有三种选择,分别是 HSE 高速晶振、LSE 低速晶振、LSI 内部晶振,如题下图所示。
通过 RCCHSEConfig()、RCCLSEConfig()、RCC_LSICmd() 三个函数能够分别对上述三种时钟进行设置。
本质上分别是对 RCCCR、RCCBDCR、RCC_CSR 中相对应寄存器进行设置。
通过 RCC_RTCCLKConfig() 等函数能够选择 RTC 的时钟源,如下图所示:
RTC 结构
RTC 和 BKP 的结构如上图所示,阴影部分是 BKP 区域,其中有 RTC 相关的寄存器,后备区域独立于 CPU,通过对 PWRCR 寄存器中 DBP 的置位,即 PWRBackupAccessCmd() 函数,能够开启 RTC 和 BKP 区域的写使能,理论上说,设置 RTCCRL 寄存器中的 CNF 位即 RTCEnterConfigMode() 函数也能够让 RTC 进入设置模式,但目前操作不成功。
RTCPRL 置位后,RTCCNT 计数器开始运行,配合 RTCALR、RTCCR 等寄存器,开始实现 RTC 功能。
RTCWaitForSynchro() 函数,读 RTCCLR 寄存器中 RSF 位,确保RTCCNT、RTCALR或RTCPRL已经被同步。(若在读取RTC寄存器时,RTC的APB1接口曾经处于禁止状态,则软件首先必须等待RTCCRL寄存器中的RSF位(寄存器同步标志)被硬件置’1’。)
RTCWaitForLastTask() 函数,读 RTCCLR 寄存器中 RTOFF 寄存器,判断上一次操作是否已完成。
RTCITConfig(RTCITSEC,ENABLE) 函数,开启 RTC 中的秒中断,RTC 中共有三种中断,如上图所示,由 RTCCR 寄存器中的相关标志位管理。
RTCSetPrescaler() 函数设置上图中 RTCPRL 寄存器,即预分频值,PRL 寄存器修改后会装载进 RTCDIV 寄存器,通过读 RTCDIV 寄存器能够得到 RTC_PRL 寄存器中的值。
RTC 和 PWR 待机模式
STM32 能够通过某些操作进入待机模式(Standby Mode),待机模式能够通过 RTC 的闹钟中断唤醒(Alarm),其中有两点需要注意:
中断需要在进入待机模式前启动,进入待机模式后无法配置 RTC 寄存器。
PWR 模式被唤醒后,执行完 Alarm 中断处理程序,会重新从主函数开始运行。
-
晶振
+关注
关注
34文章
2911浏览量
68407 -
STM32
+关注
关注
2274文章
10929浏览量
358004 -
定时器
+关注
关注
23文章
3256浏览量
115517 -
RTC
+关注
关注
2文章
544浏览量
67138 -
时钟源
+关注
关注
0文章
93浏览量
16049
发布评论请先 登录
相关推荐
如何对实时时钟进行低功耗 RTC规范和相关的设计挑战
![如何对实时时钟进行低功耗 <b class='flag-5'>RTC</b>规范和<b class='flag-5'>相关</b>的设计挑战](https://file.elecfans.com/web1/M00/D3/9A/pIYBAF_QaQ6ABRksAACeT4eY8X8404.png)
总结RTC(Real Time Clock)实时时钟相关的知识
关于RTC时钟的知识点
DS1302 RTC有关的知识介绍
STM32F030_RTC实时时钟相关的知识资料下载
![STM32F030_<b class='flag-5'>RTC</b>实时时钟<b class='flag-5'>相关</b>的<b class='flag-5'>知识</b>资料下载](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
【STM32】RTC详解
![【STM32】<b class='flag-5'>RTC</b>详解](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
RTC技术基础知识
![<b class='flag-5'>RTC</b>技术基础<b class='flag-5'>知识</b>](https://file1.elecfans.com/web2/M00/88/C0/wKgaomRwdY6ABpu1AAFPbIZb29Q331.jpg)
什么是RTC?RTC的基础知识
![什么是<b class='flag-5'>RTC</b>?<b class='flag-5'>RTC</b>的基础<b class='flag-5'>知识</b>](https://file1.elecfans.com/web2/M00/A1/84/wKgaomTsBcaAD58WAAAqdJcPh60679.png)
评论