学习STM32第十七天

备份域详解

一、简介

在参考手册的电源控制章节,提到了备份域,BKPR是在RTC外设中用到,包含20个备份数据寄存器(80字节),备份域包括4KB的备份SRAM,以32位、16位或8位模式寻址,在VBAT有电前提下可视为内部EEPROM

  1. 对BKP寄存器的访问

    • RCC_APB1ENR寄存器中的PWREN位置1,使能电源接口时钟
    • PWR_CR电源控制寄存器中的DBP位置1,使能对备份域的访问
    • 选择RTC时钟源
    • 通过对RCC备份域控制寄存器RCC_BDCR中的RTCEN[15]位进行编程使能RTC时钟
  2. 对BKPSRAM的访问

    • RCC_APB1ENR寄存器中的PWREN位置1,使能电源接口时钟
    • PWR_CR寄存器中的DBP位置1
    • 通过将RCC_AHB1ENR寄存器中的BKPSRANEB位置1,使能备份SRAM时钟

二、案例分析

  1. 读写备份寄存器
c 复制代码
void MyBKP_Init()
{
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);					//电源控制寄存器在APB1总线
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);             //备份域寄存器在AHB1总线
	
	PWR_BackupAccessCmd(ENABLE);										//使能对备份域的访问
	
	RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);								//RTC时钟源
	RCC_RTCCLKCmd(ENABLE);												//使能RTC
}
  1. 读写备份域SRAM
c 复制代码
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);					//电源控制寄存器在APB1总线
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);             //备份域寄存器在AHB1总线
	PWR_BackupAccessCmd(ENABLE);										//使能对备份域的访问
	
	/* 应用程序必须等待备份调压器就绪标志 (BRR) 置 1,指示在待机模式和 VBAT 模式下会保持写入 RAM 中的数据。 */
	while(PWR_GetFlagStatus(PWR_FLAG_BRR) != SET);
相关推荐
GHL2842710901 小时前
换脸工作流学习
学习·ai
_李小白2 小时前
【android opencv学习笔记】Day 28: 滤波算法之中值滤波器
android·opencv·学习
飞翔中文网3 小时前
Java学习笔记之抽象类与接口(设计思想)
java·笔记·学习
土星碎冰机4 小时前
xxljob学习(大白话版本)
学习·运维开发
吃好睡好便好4 小时前
说说免疫力的维护
学习·生活
LCG元5 小时前
STM32实战:基于STM32F103的家用新风系统智能控制器(空气质量监测+PID调速)
stm32·单片机·嵌入式硬件
凉、介5 小时前
深入理解 ARMv8-A|处理器模式与寄存器
笔记·学习·嵌入式·arm
z200509305 小时前
【linux学习】深入理解linux文件I/O,从C标准库到内核态
linux·学习·操作系统
LCG元5 小时前
STM32实战:基于STM32F103的多通道工业数据采集与监控系统(Modbus RTU+上位机)
stm32·单片机·嵌入式硬件
资深流水灯工程师6 小时前
STM32 单片机 USB 通讯原理与 HAL 库实战详解
stm32·单片机·嵌入式硬件