BKP备份寄存器读取

1.简介:

BKP(Backup)备份寄存器是一种特殊的功能寄存器,用于存储某些设备的备份数据。这些数据通常是非常重要的,因此需要定期备份以防止意外丢失。

具体来说,BKP寄存器可以用于以下几种情况:

  1. 备份按键或触摸屏的输入数据:在一些嵌入式系统中,按键或触摸屏的输入数据是非常重要的,因此需要将这些数据备份到BKP寄存器中。如果系统出现故障或崩溃,可以从BKP寄存器中恢复这些数据。
  2. 备份系统状态:在一些系统中,系统状态是非常重要的,因此需要将这些状态数据备份到BKP寄存器中。如果系统出现故障或崩溃,可以从BKP寄存器中恢复这些状态数据。
  3. 备份重要数据:在一些应用中,某些数据是非常重要的,因此需要将这些数据备份到BKP寄存器中。如果系统出现故障或崩溃,可以从BKP寄存器中恢复这些数据。

总之,BKP寄存器是一种用于存储重要数据的特殊功能寄存器,可以用于多种情况。

而对于我们简单应用而言BKP可以用来存储少量数据。

2.容量介绍:

不同型号的单片机,BKP容量不同:

小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。

中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和 STM32F103xx微控制器。

大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控 制器。

互联型产品是指STM32F105xx和STM32F107xx微控制器。 除非特别说明,本章描述的模块适用于整个STM32F10xxx微控制器系列

我这里参考的是STM32F1XXX的参考手册,具体根据自己需要,可以查看相关参考手册:

BKP备份寄存器读取_第1张图片

3.BKP存储介绍:

BKP寄存器可以用来存储数据,存储在备份寄存区,当单片机主电源VDD关闭,我们可以通过VBAT备用电源来保持数据,当备用电源也被切断备份寄存器内的数据就会被清除,与RAM相同。

掉电丢失所以需要有电源供电维持数据保存。

否则数据就会恢复为默认的0:

BKP备份寄存器读取_第2张图片

4.BKP功能介绍:

主要有三种功能:

1.用来存储数据,不同型号存储大小不同;

2.用来管理防侵入检测并具有中断功能的状态/控制寄存器;

当我们需要保护某些数据,就可以利用BKP侵入检测,当侵入检测的引脚PC13发生上升沿或者下降沿就会产生中断标志位,在中断处理时候,自动清除BKP内的数据从而保护我们的数据安全。具体可以参考手册:

BKP备份寄存器读取_第3张图片

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就会保存数据,我们不需要再次写入数据,所以对应应该注释掉写入代码

防止掉电以后程序重新执行写入操作,导致数据重新备份数据泄露。

BKP备份寄存器读取_第4张图片

3.与上面类似,最好不要用变量存储数据,也会导致数据,掉电重启以后,会重新写入,有可能会导致数据泄露;

BKP备份寄存器读取_第5张图片

你可能感兴趣的:(单片机,stm32,嵌入式硬件)