打印
[STM32F4]

STM32F4之备份存储

[复制链接]
918|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tpgf|  楼主 | 2024-7-18 14:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这段时间一直在用STM32开发板做项目开发,需要将数据存储在备份SRAM中,待系统重启后可以直接调用先前的数据。在这里将自己的开发过程做个记录和总结。

       这里的代码不是很多,原理也不是很难,可以结合STM32F4开发板的《库函数开发指南》这个资料中RTC实验进行学习。具体的代码如下:

#ifndef _BACKUP_H
#define _BACKUP_H
#include "sys.h"

#define BACKUP_ENABLE  0

u8 Backup_Init(void);

#endif

#include "instruction.h"



u8 Backup_Init(){
               
        RTC_InitTypeDef  RTC_InitStructure;

       
#if BACKUP_ENABLE
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//使能PWR时钟
        PWR_BackupAccessCmd(ENABLE);        //使能后备寄存器访问
//       
#else
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, DISABLE);//失能PWR时钟
        PWR_BackupAccessCmd(DISABLE);        //失能后备寄存器访问
       
#endif
       
        return 0;

}

//RTC_ReadBackupRegister(RTC_BKP_DR0) //向备份SRAM中读取数据,可以直接调用

//RTC_WriteBackupRegister(RTC_BKP_DR0,0x5050);        //向备份SRAM中写入数据,可以直接调用

        整个备份SRAM存储的代码就这么多,第一部分为头文件,没有太多东西,这里就不做过多解释了。第二部分为程序的实现部分:

        首先程序中.h文件中包含了#include <backup.h>,#include <instruction.h>是包含我整个工程的所有头文件的集合,这里大家可以不用管。

        其次是u8 Backup_Init()的实现部分,程序中已经做了详细的注释,这里也就不多解释了。

        最后,整个程序实现部分最重要的是被注释掉的最后两行,这里的两行分别是向备份SRAM中读取数据和向备份SRAM中写入数据,两段代码可以直接调用。其中:RTC_ReadBackupRegister(RTC_BKP_DR0)中的参数RTC_BKP_DR0是被读取的存储数据的寄存器。RTC_WriteBackupRegister(RTC_BKP_DR0,0x5050)中的参数分别是写入数据的存储寄存器,以及写入的内容。
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_40506939/article/details/135054078

使用特权

评论回复
沙发
kzlzqi| | 2024-7-29 15:30 | 只看该作者
使用STM32开发板进行数据存储时,备份SRAM(Backup SRAM)是一个非常有用的特性,可以在系统重启后保留重要的数据

使用特权

评论回复
板凳
范德萨发额| | 2024-7-29 15:40 | 只看该作者
在实际项目中,需要在适当的地方调用备份初始化函数,并使用读写函数进行数据存储和读取。

使用特权

评论回复
地板
申小林一号| | 2024-7-29 22:41 | 只看该作者
感谢分享

使用特权

评论回复
5
纠结的那些年| | 2024-7-31 11:58 | 只看该作者
备份 SRAM 是 STM32 微控制器中的一块特殊内存,它在 MCU 断电时也能保持数据(如有备用电源)。这使得备份 SRAM 可以用于保存重要数据,以便在系统重启后恢复。

使用特权

评论回复
6
纠结的那些年| | 2024-7-31 11:59 | 只看该作者
在 STM32 中,RTC 不仅用于时间和日期的计时,还可以用来读写备份寄存器。备份寄存器可以用于存储一些状态数据,例如是否需要进行数据恢复等。

使用特权

评论回复
7
AdaMaYun| | 2024-7-31 12:49 | 只看该作者
将数据存储在备份SRAM中,待系统重启后可以直接调用先前的数据

使用特权

评论回复
8
kqh11a| | 2024-8-28 12:20 | 只看该作者
在 STM32F4 系列中,RTC 用于管理备份 SRAM 的功能。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2028

主题

15903

帖子

14

粉丝