• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

实时时钟BKP相关问题

Key一哥 2018-10-29 浏览量:998
例程里        if(RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x5050)                //是否是第一次配置
这个0X5050是从哪里得知的,看了中文参考手册里BKPxR寄存器也没有写如何配置
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • BKP寄存器是易失存贮器,它和RTC时钟一样,在MCU掉电后,靠后备电池供电保持数据。

    第一次上电时,BKP寄存器的值是默认值00,参考手册里有写。这时BKP的值肯定不是约定值(0x5050),判定为初次上电。进行一些初次上电的初始化工作,比如给RTC置一个初始值。置一个标志位,等程序正常运转时提醒人工设置时间。最最重要的是:完成这些工作给BKP置上约定值。

    下次上电、或复位,只要后备电池没掉过电。BKP的值就不会变,也就不用给RTC重置时间。


    那个0x5050,是自己定的值,只要不是00就行了。

    • 发布于 2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 0x5050是看是不是掉电过,如果之前没装电池就是5050,需要重新配置,如果开机之后rtc里面有数据就是不用初始化配置
    • 发布于2018-10-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 详细可参考。stm32 BKP寄存器操作[操作寄存器+库函数]
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 用来标记有没有初始化RTC!
    • 发布于2018-10-31
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个0x5050应该是之前写入的一个数据,这个备份寄存器会保存复位前的数据,复位前应该是进行过写入的
    • 发布于2018-11-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个数据是初始化的数据,要检查一下你的复位前的数据是不是已经写入
    • 发布于2018-11-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 检查你的数据问题,是不是数据后来被相关的程序修改了
    • 发布于2018-11-27
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个一般都是你的数据初始化有问题导致的
    • 发布于2018-12-09
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

实时时钟BKP相关问题