学习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);
相关推荐
艾莉丝努力练剑3 小时前
【AI接入大模型SDK】ChatSDK示例验证
人工智能·学习·面试·大模型·sdk
葡萄成熟时 !8 小时前
JAVA 常用API学习笔记
java·笔记·学习
捷瑞电子工坊8 小时前
FreeRTOS任务管理:从入门到实践(标准库版)
stm32·嵌入式·freertos·实时操作系统·任务管理·标准外设库·任务挂起与恢复
别动我齐刘海10 小时前
机器人运动控制学习2——基础进阶
c++·人工智能·神经网络·学习·目标检测·机器学习·机器人
05664612 小时前
agent学习——流式响应与文本切分
网络·python·学习
莫浅子12 小时前
day01-USB架构与枚举
c++·单片机·嵌入式驱动
for_ever_love__12 小时前
python基础语法学习: 面向对象的三大特性
开发语言·python·学习
Hello_Damon_Nikola14 小时前
INMP441从入门到精通
单片机·嵌入式硬件·物联网
ye1501277745514 小时前
12V转3V-5V2A电位器无极调光调速WT7027
stm32·单片机·嵌入式硬件
Canmag 兴隆磁性15 小时前
C 系列充磁机
c语言·开发语言·学习·永磁材料·充磁·退磁