STM32运行RTC时死机问题

来源:本站
导读:目前正在解读《STM32运行RTC时死机问题》的相关信息,《STM32运行RTC时死机问题》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《STM32运行RTC时死机问题》的详细说明。
简介:本文介绍了STM32运行RTC实时时钟时死机的问题以及解决方法。

发现是由于RTC配置的问题。

在RTC初始化程序中,我们一般要查看BKP寄存器中的数据,判断后备电源是否掉电过。如果掉电过,则初始化。没有则不执行。

但要设置时钟的话,必需允许PWR和BKP时钟,并允许读取BKP。而如果仅电源掉电而后备电池不掉电的话,PWR和BKP时钟是没有开放的。这样就等不到RTC指令执行完成的标志,停在那了。

解决方法就是在RTC初始化中判断判断掉电标志位的else分支中加入

//启用PWR和BKP的时钟(from APB1)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);

//后备域解锁

PWR_BackupAccessCmd(ENABLE);

if (BKP_ReadBackupRegister(BKP_DR1) != 0xA5A5)

{

//重新配置RTC

RTC_Configuration();

...

}

else

{

//启用PWR和BKP的时钟(from APB1)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP, ENABLE);

//后备域解锁

PWR_BackupAccessCmd(ENABLE);

...

}

提醒:《STM32运行RTC时死机问题》最后刷新时间 2024-03-14 01:08:46,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《STM32运行RTC时死机问题》该内容的真实性请自行鉴别。