学习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);
相关推荐
Every exam must be17 小时前
10.27 JS学习12
开发语言·javascript·学习
能工智人小辰17 小时前
VMamba: Visual State Space Model学习笔记
笔记·学习
woodykissme17 小时前
渐开线花键参数一般是怎么确定的?
学习·机械·齿轮·渐开线花键
兆龙电子单片机设计18 小时前
【STM32项目开源】STM32单片机智能台灯系统
stm32·单片机·物联网·开源·毕业设计
sheepwjl18 小时前
《嵌入式硬件(十七):基于IMX6ULL的温度传感器LM75a操作》
单片机·嵌入式硬件·imx6ull·lm75a
im_AMBER18 小时前
React 10
前端·javascript·笔记·学习·react.js·前端框架
liujing1023292918 小时前
stm32_基于 STM32U575 的飞行器姿态实时监控系统
stm32
喜欢吃燃面18 小时前
C++:红黑树
开发语言·c++·学习
兔兔爱学习兔兔爱学习18 小时前
LangChain4j学习一:聊天和语言模型
人工智能·学习·语言模型
伞啊伞19 小时前
云计算学习(三)——子网划分
学习·云计算