学习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);
相关推荐
Loving_enjoy4 小时前
DFT可测试性设计规则与检查:确保芯片可测试性的关键步骤
学习
r_oo_ki_e_4 小时前
Java反射机制学习笔记
java·笔记·学习
嵌入式-老费4 小时前
esp32开发与应用(与stm32f103工控板配合之上篇)
stm32·单片机·嵌入式硬件
绝世番茄6 小时前
鸿蒙HarmonyOS ArkTS原生学习:缩放手势实现 PinchToZoom 深度解析
学习·华为·harmonyos·鸿蒙
a1117766 小时前
SLAM 学习笔记(四)后端(KF BA)
笔记·学习
XGeFei6 小时前
【Django学习笔记】—— Django 高并发通俗讲解
笔记·学习·django
周洲08307 小时前
裸机程序 vs RTOS架构深度对比|嵌入式项目选型标准、源码实战、优缺点全解析
stm32·嵌入式硬件
六点_dn7 小时前
Linux学习笔记-chmod命令
linux·笔记·学习
MartinYeung57 小时前
[论文学习]揭示大语言模型智能体记忆模块中的隐私风险
人工智能·学习·语言模型
M海洋7 小时前
Ubuntu dialout 串口权限授权
linux·单片机·ubuntu