这段时间一直在用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
|