学习STM32第十七天

备份域详解

一、简介

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

BKPSRAM

  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. 读写备份寄存器
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
	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);

相关推荐

  1. 学习STM32

    2024-04-23 09:22:03       36 阅读
  2. 学习Android的

    2024-04-23 09:22:03       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 09:22:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 09:22:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 09:22:03       82 阅读
  4. Python语言-面向对象

    2024-04-23 09:22:03       91 阅读

热门阅读

  1. 自然语言处理(NLP)技术

    2024-04-23 09:22:03       34 阅读
  2. Android 8.1 删除Launcher桌面搜索框

    2024-04-23 09:22:03       32 阅读
  3. flask后端实践02-全局Response返回和异常处理

    2024-04-23 09:22:03       35 阅读
  4. 全志H616学习笔记

    2024-04-23 09:22:03       35 阅读
  5. 【Python快速上手(一)】

    2024-04-23 09:22:03       34 阅读
  6. 描述一下PHP与HTML和CSS的关系

    2024-04-23 09:22:03       35 阅读
  7. 每天一个数据分析题(二百八十四)

    2024-04-23 09:22:03       34 阅读
  8. 关于抖音 担保支付 订单同步 报错

    2024-04-23 09:22:03       36 阅读
  9. WordPress 谷歌SEO是否还有必要做?又该如何做?

    2024-04-23 09:22:03       36 阅读
  10. RabbitMQ传递序列化/反序列化自定义对象时踩坑

    2024-04-23 09:22:03       37 阅读
  11. Edge浏览器的深度探索与使用心得

    2024-04-23 09:22:03       40 阅读