今天学习的读写STM32的备份寄存器BKP的步骤,这节知识是比较简单的,一共也就两大部:
这个BKP寄存器的意思就是在芯片的VB引脚上接个电池,就能保存其寄存器中的数据掉电不丢失。先来看看电池的接法:
好,下面介绍一下读写过程:
大体的步骤为:先初始化,然后写DR,再读DR
第一步:开启PWR和BKP的时钟
第二步:使用PWR的一个函数,使能对BKP和RTC的访问
写入数据:BKP有个写入的函数
读取数据:BKP也有个读取的函数
再来看看总体的程序,其实就只写了一个main函数,并没有封装新模块:
cs
#include "stm32f10x.h" // Device header
#include "OLED.h"
int main(void)
{
OLED_Init(); //oled 屏幕初始化
/*
大体的步骤为:先初始化,然后写DR,再读DR
第一步:开启PWR和BKP的时钟
第二步:使用PWR的一个函数,使能对BKP和RTC的访问
写入数据:BKP有个写入的函数
读取数据:BKP也有个读取的函数
*/
//第一步:开启PWR和BKP的时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE);
//第二步:使用PWR的一个函数,使能对BKP和RTC的访问
PWR_BackupAccessCmd(ENABLE);
//写入数据:BKP有个写入的函数
BKP_WriteBackupRegister(BKP_DR1, 0x1234);
OLED_ShowHexNum(1,1, BKP_ReadBackupRegister(BKP_DR1), 4);
}
将其编译下载后就能显示这次的实验结果了:这个结果只要VB有电池供电,其他都断电,其DR中的数据也不会丢失。