STM32 RTC小结

 RTC可以用来设置实时时钟,并产生秒中断或闹钟中断。在芯片有电源供电的情况下,系统掉电后仍能保持时钟计时。

RTC设置需要涉及对电源(PWR)、备份区域(BKP)和RCC部分寄存器的改写。

RTC所需的晶振在RCC部分的寄存器中选择。在芯片时钟系统中对RTC的时钟提供如下图所示。RTC时钟可以从LSI, LSE和HSE分频中选择。这些需要对RCC寄存器的一些位进行设置。

RTC的预分频器、计数器和闹钟寄存器在备份区域中,以保证系统掉电后,在电池供电时仍能计数,如下图所示。在电源部分,系统复位后,将禁止向备份区域写入内容,因此,若要配置RTC,需要在电源部分允许对备份区域的写入。

备份区中有留给用户写入数据的空间。由于掉电后备份区中的内容仍保持,可以通过对用户写入数据的比较,知道备份区中的设置(尤其是RTC设置)是否存在。若不存在,需要清空备份区并重新写入;若存在,则只需再次写入备份区之外的RTC_CR。

由于用户是通过APB1接口读写RTC寄存器,在上电之后,需要先等待APB1接口与RTC同步完成,否则读取的RTC值可能有误;完成同步以RTC_CRL的RSF位置1为标志。对于写RTC寄存器,先查询RTC_CRL的RTOFF位,直到为1,说明上一次操作已经完成;再CNF置1,进入配置模式;写寄存器;CNF置0,退出配置模式;等待RTOFF位为1,说明本次写入已经完成。

下面贴一个可以跑通的简化流程,完成按秒计数的功能。 

 

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值