2025/12/27 19:10:29
网站建设
项目流程
成都网站建设方案服务,查wordpress模板,江苏建设部网站,在网站上做封面一、前言介绍1.1寄存器介绍BKP#xff08;backup register#xff0c;备份寄存器#xff09;。备份寄存器是42个16位的寄存器#xff0c;可用来存储84个字节的用户应用程序数据。他们处在备份域里#xff0c;当VDD电源被切断#xff0c;他们仍然由VBAT维持供电。当系统在…一、前言介绍1.1寄存器介绍BKPbackup register备份寄存器。备份寄存器是42个16位的寄存器可用来存储84个字节的用户应用程序数据。他们处在备份域里当VDD电源被切断他们仍然由VBAT维持供电。当系统在待机模式下被唤醒或系统复位或电源复位时他们也不会被复位。此外BKP控制寄存器用来管理侵入检测和RTC校准功能。初始化相关复位后对备份寄存器和RTC的访问被禁止并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问主要功能功能是 当系统复位是不会一起被复位需要保存数据但是断电也不会保存没电池无法保存1.2侵入检测功能当TAMPERPC13引脚上的信号从0变成1或者从1变成0取决于备份控制寄存器BKP_CR的TPAL位会产生一个侵入检测事件。侵入检测事件将所有数据备份寄存器内容清除。设置BKP_CSR寄存器的TPIE位为1当检测到侵入事件时就会产生一个中断。1.3RTC校准为方便测量RTC时钟可以经64分频输出到侵入检测引脚TAMPER上。通过设置RTC校验寄存器BKP_RTCCR的CCO位来开启这一功能。二、代码需求验证是否可以复位后存取数据BKP可以存储数据#include Dri_BKP.h // bkp初始化 void Dri_BKP_Init(void) { // 复位后对备份寄存器和RTC的访问被禁止并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问 // 1通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟 RCC-APB1ENR | RCC_APB1ENR_PWREN; RCC-APB1ENR | RCC_APB1ENR_BKPEN; // 2电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问 PWR-CR | PWR_CR_DBP; // 判断是否里面有数据 有数据就不需要复位了 这样会把数据冲到 if(BKP-DR1) { return; } // 复位 //先变1 在变0 RCC-BDCR | RCC_BDCR_BDRST; RCC-BDCR ~RCC_BDCR_BDRST; } // bkp存数据 void Dri_BKP_Write(uint16_t data) { BKP-DR1 data; } // bkp取数据 uint16_t Dri_BKP_Read(void) { return BKP-DR1; }main函数int main(void) { USART_Init(); Dri_BKP_Init(); //Dri_BKP_Write(34521); uint16_t data Dri_BKP_Read(); printf(data的值是:%d,data); }三、寄存器介绍3.1 BKP_DR 备份数据寄存器用来存储用户数据。一共42个16位寄存器大容量和互联型是42个中小容量产品是20个可以存84个字节的数据。此寄存器可以计算出是20个。