BKP寄存器是易失存贮器,它和RTC时钟一样,在MCU掉电后,靠后备电池供电保持数据。
第一次上电时,BKP寄存器的值是默认值00,参考手册里有写。这时BKP的值肯定不是约定值(0x5050),判定为初次上电。进行一些初次上电的初始化工作,比如给RTC置一个初始值。置一个标志位,等程序正常运转时提醒人工设置时间。最最重要的是:完成这些工作给BKP置上约定值。
下次上电、或复位,只要后备电池没掉过电。BKP的值就不会变,也就不用给RTC重置时间。
那个0x5050,是自己定的值,只要不是00就行了。