RTC配置

本文详细介绍了STM32实时计时器(RTC)的配置步骤,包括使能电源和备份区域时钟、取消备份区写保护、复位和开启外部低速振荡器、选择RTC时钟、设置分频和中断、更新配置以及编写中断服务函数。遵循这些步骤,可以确保RTC正常工作。
摘要由CSDN通过智能技术生成

RTC正常工作的一般配置步骤

1. 使能电源时钟和备份区域时钟

要访问 RTC 和备份区域就必须先使能电源时钟和备份区域时钟 ,通过 RCC_APB1ENR 寄存器来设置
在这里插入图片描述

RCC->APB1ENR |= 1<<28;     //使能电源接口时钟	    
RCC->APB1ENR |= 1<<27;     //使能备份区域时钟	   

2. 取消备份区写保护

要向备份区域写入数据,就要通过PWR_CR寄存器取消备份区域写保护(写保护在每次硬复位之后被使能),通过向备份区写一个字节,标记时钟已经被配置完成。

在这里插入图片描述

PWR->CR |= 1<<8;           //取消备份区写保护

3.复位备份区域,开启外部低速振荡器

取消备份区写保护后,对这个区域复位。当然这个操作不要每次都执行,因为备份区域的复位将导致之前存在的数据丢失,所以要不要复位,要
通过BKP_DR1检测是否是第一次配置。然后我们使能外部低速振荡器,注意这里一般要先判断 RCC_BDCR 的 LSERDY位来确定低速振荡器已经就绪了才开始下面的操作。
在这里插入图片描述

if(BKP->DR1 != 0X5050) //是否是第一次配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

RCC->BDCR |= 1<<16;        //备份区域软复位	   
RCC->BDCR &= ~(1<<16);     //备份区域软复位结束
RCC->BDCR |= 1<<0;         //开启外部低速振荡器 

在这里插入图片描述

while((!(RCC->BDCR&0X02)) && temp<250){
   	//等待外部时钟就绪	 
	temp++;
	delay_ms(10);
};
if(temp>=250)
	return 1;	//初始化时钟失败,晶振有问题	 

4.选择 RTC 时钟,并使能

通过 RCC_BDCR 的 RTCSEL 来选择选择外部 LSE作为 RTC 的时钟。然后通过RTCEN 位使能 RTC 时钟。
在这里插入图片描述在这里插入图片描述

RCC->BDCR|=1<<8; //LSE作为RTC时钟	    
RCC->BDCR |= 1<<15;//RTC时钟使能	  

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

while(!(RTC-&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喂他柠檬茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值