1.简介:
BKP(Backup)备份寄存器是一种特殊的功能寄存器,用于存储某些设备的备份数据。这些数据通常是非常重要的,因此需要定期备份以防止意外丢失。
具体来说,BKP寄存器可以用于以下几种情况:
- 备份按键或触摸屏的输入数据:在一些嵌入式系统中,按键或触摸屏的输入数据是非常重要的,因此需要将这些数据备份到BKP寄存器中。如果系统出现故障或崩溃,可以从BKP寄存器中恢复这些数据。
- 备份系统状态:在一些系统中,系统状态是非常重要的,因此需要将这些状态数据备份到BKP寄存器中。如果系统出现故障或崩溃,可以从BKP寄存器中恢复这些状态数据。
- 备份重要数据:在一些应用中,某些数据是非常重要的,因此需要将这些数据备份到BKP寄存器中。如果系统出现故障或崩溃,可以从BKP寄存器中恢复这些数据。
总之,BKP寄存器是一种用于存储重要数据的特殊功能寄存器,可以用于多种情况。
而对于我们简单应用而言BKP可以用来存储少量数据。
2.容量介绍:
不同型号的单片机,BKP容量不同:
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。
互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列
我这里参考的是STM32F1XXX的参考手册,具体根据自己需要,可以查看相关参考手册:
3.BKP存储介绍:
BKP寄存器可以用来存储数据,存储在备份寄存区,当单片机主电源VDD关闭,我们可以通过VBAT备用电源来保持数据,当备用电源也被切断备份寄存器内的数据就会被清除,与RAM相同。
掉电丢失所以需要有电源供电维持数据保存。
否则数据就会恢复为默认的0:
4.BKP功能介绍:
主要有三种功能:
1.用来存储数据,不同型号存储大小不同;
2.用来管理防侵入检测并具有中断功能的状态/控制寄存器;
当我们需要保护某些数据,就可以利用BKP侵入检测,当侵入检测的引脚PC13发生上升沿或者下降沿就会产生中断标志位,在中断处理时候,自动清除BKP内的数据从而保护我们的数据安全。具体可以参考手册:
3.用于RTC校准;
为方便测量,RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存 器(BKP_RTCCR)的CCO位来开启这一功能。 通过配置CAL[6:0]位,此时钟可以最多减慢121ppm。 关于RTC校准和如何提高精度,请看AN2604“STM32F101xx和STM32F103xx的RTC校准”
5.BKP实际使用:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
PWR_BackupAccessCmd(ENABLE);
BKP_WriteBackupRegister(BKP_DR1, 0X1234);
OLED_ShowHexNum(1,1,BKP_ReadBackupRegister(BKP_DR1),4);
主要就是开启两个时钟,PWR和BKP,这里主要是因为BKP需要备份电源来维持数据,而对于我们单片机来说默认是关闭的,所以需要手动开启。而然后调用BKP.h的函数写入,读取就可以。
注意:一般来说备份一次即可
1.需要有备份电源供电维持数据;
2.在写入以后,BKP就会保存数据,我们不需要再次写入数据,所以对应应该注释掉写入代码
防止掉电以后程序重新执行写入操作,导致数据重新备份数据泄露。
3.与上面类似,最好不要用变量存储数据,也会导致数据,掉电重启以后,会重新写入,有可能会导致数据泄露;