【STM32】STM32学习笔记-BKP备份寄存器和RTC实时时钟(42)

00. 目录

01. BKP简介

备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当V DD 电源被切断,他们仍然由V

BAT 维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。

此外,BKP控制寄存器用来管理侵入检测和RTC校准功能。

复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问。

● 通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟

● 电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问。

•BKP(Backup Registers)备份寄存器

•BKP可用于存储用户应用程序数据。当VDD(2.0~3.6V)电源被切断,他们仍然由VBAT(1.8~3.6V)维持供电。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位

•TAMPER引脚产生的侵入事件将所有备份寄存器内容清除

•RTC引脚输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲

•存储RTC时钟校准寄存器

•用户数据存储容量:

20字节(中容量和小容量)/ 84字节(大容量和互联型)

02. BKP特性

● 20字节数据后备寄存器(中容量和小容量产品),或84字节数据后备寄存器(大容量和互联型产品)

● 用来管理防侵入检测并具有中断功能的状态/控制寄存器

● 用来存储RTC校验值的校验寄存器。

● 在PC13引脚(当该引脚不用于侵入检测时)上输出RTC校准时钟,RTC闹钟脉冲或者秒脉冲

03. BKP基本结构

在这里插入图片描述

04. RTC简介

实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。

RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待机模式唤醒后,RTC的设置和时间维持不变。

系统复位后,对后备寄存器和RTC的访问被禁止,这是为了防止对后备区域(BKP)的意外写操作。执行以下操作将使能对后备寄存器和RTC的访问:

● 设置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能电源和后备接口时钟
● 设置寄存器PWR_CR的DBP位,使能对后备寄存器和RTC的访问。

•RTC(Real Time Clock)实时时钟

•RTC是一个独立的定时器,可为系统提供时钟和日历的功能

•RTC和时钟配置系统处于后备区域,系统复位时数据不清零,VDD(2.03.6V)断电后可借助VBAT(1.83.6V)供电继续走时

•32位的可编程计数器,可对应Unix时间戳的秒计数器

•20位的可编程预分频器,可适配不同频率的输入时钟

•可选择三种RTC时钟源:

HSE时钟除以128(通常为8MHz/128)

LSE振荡器时钟(通常为32.768KHz)

LSI振荡器时钟(40KHz)

05. RTC主要特性

● 可编程的预分频系数:分频系数最高为2^20 。
● 32位的可编程计数器,可用于较长时间段的测量。
● 2个分离的时钟:用于APB1接口的PCLK1和RTC时钟(RTC时钟的频率必须小于PCLK1时钟频率的四分之一以上)。
● 可以选择以下三种RTC的时钟源:
─ HSE时钟除以128;
─ LSE振荡器时钟;
─ LSI振荡器时钟(详见6.2.8节RTC时钟)。
● 2个独立的复位类型:
─ APB1接口由系统复位;
─ RTC核心(预分频器、闹钟、计数器和分频器)只能由后备域复位(详见6.1.3节)。
● 3个专门的可屏蔽中断:
─ 闹钟中断,用来产生一个软件可编程的闹钟中断。
─ 秒中断,用来产生一个可编程的周期性中断信号(最长可达1秒)。
─ 溢出中断,指示内部可编程计数器溢出并回转为0的状态。

06. RTC框图

在这里插入图片描述

07. RTC基本结构

在这里插入图片描述

08. 硬件电路

在这里插入图片描述

在这里插入图片描述

09. RTC操作注意事项

•执行以下操作将使能对BKP和RTC的访问:

设置RCC_APB1ENR的PWREN和BKPEN,使能PWR和BKP时钟

设置PWR_CR的DBP,使能对BKP和RTC的访问

•若在读取RTC寄存器时,RTC的APB1接口曾经处于禁止状态,则软件首先必须等待RTC_CRL寄存器中的RSF位(寄存器同步标志)被硬件置1

•必须设置RTC_CRL寄存器中的CNF位,使RTC进入配置模式后,才能写入RTC_PRL、RTC_CNT、RTC_ALR寄存器

•对RTC任何寄存器的写操作,都必须在前一次写操作结束后进行。可以通过查询RTC_CR寄存器中的RTOFF状态位,判断RTC寄存器是否处于更新中。仅当RTOFF状态位是1时,才可以写入RTC寄存器

10. 附录

参考: 【STM32】江科大STM32学习笔记汇总

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-01-27 22:50:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-27 22:50:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-27 22:50:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-27 22:50:01       20 阅读

热门阅读

  1. cs2系统提升思路

    2024-01-27 22:50:01       37 阅读
  2. 从k8s当中学习go cli脚手架开发利器-cobra

    2024-01-27 22:50:01       33 阅读
  3. 一篇文章带你全面理解热更新技术

    2024-01-27 22:50:01       32 阅读
  4. Golang 垃圾回收

    2024-01-27 22:50:01       32 阅读
  5. js如何数组去重

    2024-01-27 22:50:01       37 阅读
  6. 抖音私信风车怎么做,详细的实现过程,附视频

    2024-01-27 22:50:01       41 阅读
  7. Vue3使用百度地图marker点位实现水波纹动效

    2024-01-27 22:50:01       29 阅读
  8. 深入了解 Spring ImportBeanDefinitionRegistrar

    2024-01-27 22:50:01       30 阅读