STM32H725 备份RAM使用

STM32H725 备份RAM使用

一、备份SRAM地址域

地址映射:0x38800000 - 0x38800FFF

二、使用初始化

使用备份SRAM前,需要最如下初始化:

#if (0U != BACKUP_SRAM_PWRER_BAT_ENABLE)

/* 备份RAM 电源使能 */

HAL_PWR_EnableBkUpReg();

#else

/* 备份RAM 电源使能 */

HAL_PWR_DisableBkUpReg();

#endif

/* 使能备份RAM 时钟 */

__HAL_RCC_BKPRAM_CLK_ENABLE();

/* 使能对备份RAM的访问权限 */

HAL_PWR_EnableBkUpAccess();

关于宏 BACKUP_SRAM_PWRER_BAT_ENABLE 含义:在Vbat有接入的前提,使能 :VDD 失电后,备份 RAM 能够保存掉电前的数据; 未使能 : 备份 RAM 无法保存掉电前的数据

手册中相关寄存器描述:

PWR 控制寄存器 1 (PWR_CR1)

位 8 DBP:禁止备份域写保护 (Disable backup domain write protection)

在复位状态下,RCC_BDCR 寄存器、RTC 寄存器(包括备份寄存器)以及 PWR_CR2 寄

存器的 BREN 和 MOEN 位均受到写访问保护。必须将此位置 1 才能使能对这些寄存器的写

访问。

0:禁止对 RTC、RTC 备份寄存器和备份 SRAM 的访问

1:使能对 RTC、RTC 备份寄存器和备份 SRAM 的访问

RCC AHB4 时钟寄存器 (RCC_AHB4ENR)

位 28 BKPRAMEN:备份 RAM 时钟使能 (Backup RAM Clock Enable)

由软件置 1 和复位。

0:禁止备份 RAM 时钟(复位后的默认值)

1:使能备份 RAM 时钟。

三、读、写备份SRAM

void bsp_backup_sram_write(uint32_t addr, uint32_t data)

{

/* 检查备份RAM地址是否合法 */

if ((addr >= BACKUP_SRAM_BASE_ADDRESS) && (addr <= BACKUP_SRAM_END_ADDRESS))

{

*(__IO uint32_t *)addr = data;

}

}

uint32_t bsp_backup_sram_read(uint32_t addr)

{

uint32_t data = 0;

/* 检查备份RAM地址是否合法 */

if ((addr >= BACKUP_SRAM_BASE_ADDRESS) && (addr <= BACKUP_SRAM_END_ADDRESS))

{

data = *(__IO uint32_t *)addr;

}

return data;

}

我这边是4字节读写,根据手册描述,最小支持单字节读写。

四、其他

关于备份SRAM,手册中还有<读保护>、<侵入事件>等等描述,后续整理输出。

相关数据

硬件保修、服务和维修
365bet资讯

硬件保修、服务和维修

⌛ 07-08 👁️ 8229
SQL通用数据类型
365bet资讯

SQL通用数据类型

⌛ 07-08 👁️ 1029
在 iPhone 上添加和移除电子邮件账户
365游戏厅网页登录

在 iPhone 上添加和移除电子邮件账户

⌛ 06-27 👁️ 3663
世界杯射手榜
365淘房APP官网下载

世界杯射手榜

⌛ 07-03 👁️ 6578
茂木夏树
365淘房APP官网下载

茂木夏树

⌛ 07-13 👁️ 8309