GD32F407RTC备份寄存器BKP的使用
在GD官网例程中没有给出GD32F407 BKP的示例代码,在网友提供的代码基础上重新使用了GD官网pmu库文件,按照流程重写了读和写的方法,供大家在使用中参考。。。
#include "gd32f4xx_rtc.h"
#include "gd32f4xx_pmu.h"
//初始化
void BKPSRAM_int(void)
{//BKPSRAM_BASE//*(__IO uint16_t *) (BKPSRAM_BASE + offset) = 0 //RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //启用压水堆时钟rcu_periph_clock_enable(RCU_BKPSRAM);// PWR_BackupAccessCmd(ENABLE); //能够访问到备份域pmu_backup_ldo_config( PMU_BLDOON_ON);//RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE); //启用备份SRAM时钟pmu_backup_write_enable();//PWR_BackupRegulatorCmd(ENABLE); //启用备份SRAM的低功耗稳压器,以保持它在VBAT模式的内容pmu_low_driver_mode_enable(PMU_LOWDRIVER_ENABLE);// while(PWR_GetFlagStatus(PWR_FLAG_BRR) == RESET) {} //等到备份SRAM的低 功耗稳压器已准备就绪while(pmu_flag_get(PMU_FLAG_BLDORF)==RESET){}}
//BKPSRAM数据读取
uint16_t Rd_s16_BKPSRAM(uint16_t add)
{uint32_t offset=0;offset=(0x07ff&add)*2;return *(__IO uint16_t *) (BKPSRAM_BASE + offset);
}
//BKPSRAM数据写
void Write_s16_BKPSRAM(uint16_t add,uint16_t d)
{uint32_t offset=0;offset=(0x07ff&add)*2;*(__IO uint16_t *) (BKPSRAM_BASE + offset) = d ;
}
//测试:
void main(void){uint16_t res;BKPSRAM_int();res=Rd_s16_BKPSRAM(RTC_BKP0);if(res==0x0B)Write_s16_BKPSRAM(RTC_BKP0,0X0A);printf("%x\r\n",res);res=Rd_s16_BKPSRAM(RTC_BKP0);printf("%x\r\n",res);Write_s16_BKPSRAM(RTC_BKP0,0X3F);
}
在系统重启后,赋值的BKP0值不应该变化,表示配置成功.
GD32F407RTC备份寄存器BKP的使用相关推荐
- STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...
- stm32之备份寄存器(BKP)应用(侵入检测中断)
前言:很多的嵌入式设备使用过程中,当系统掉电时,往往需要把一些用户设置的参数保存起来,或者是将掉电前的一些状态信息保存,或者是统计系统重启次数.保存这些动态信息其实有很多种方法,第一种:在系统掉电前保 ...
- 【STM32】HAL库-备份寄存器(BKP)
简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据. 他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电. 当系统在待机模式下被唤醒,或系统复位或电源复位时, ...
- STM32 备份寄存器操作
STM32系列为处理器都有备份寄存器,他它们处于备份区域里,当VDD电源被切断,它们仍然由VBAT维持供电,当系统在待机模式下被唤醒,或者系统复位或电源复位是,它们都不会被复位.以实时时钟RTC为例, ...
- 28_RTC实时时钟BKP备份寄存器
目录 RTC(Real Time Clock):实时时钟 RTC特征 RTC工作原理框图 BKP备份寄存器 RTC相关寄存器 配置RTC寄存器 配置过程: 读RTC寄存器 RTC相关库函数讲解 RTC ...
- stm32F103R6之BKP(备份寄存器)
目录 概述 侵入检测 RTC校准 概述 Stm32F103有42个16位的备份寄存器.他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电.当系统在待机模式下被唤醒,或系统复位或电源复位时 ...
- STM32CubeMX HAL F103 BKP备份寄存器使用
STM32CubeMX HAL F103 BKP备份寄存器使用 以下是本人自己的应用笔记,如果有错误的地方,欢迎评论区指出,我会及时更正-[2021.09.28] 1.需要开启RTC功能 2.API调 ...
- STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
某些STM32芯片提供了备份SRAM,例如STM32F系列芯片有4K的备份SRAM.然而在使用过程中发现备份区域数据丢失!下面从STM32系列芯片提供的整个备份域来看看啥情况. 电池备份域 首先, ...
- STM32的备份寄存器测试
1. 研究STM3的备份寄存器,注意,如果要测试这个例程的话,VBAT不能和VDD接一起,必须分开. 2. 理解,备份寄存器可以有VBAT独立供电,也就是外接电池,备份寄存器在VBAT供电情况下,如果 ...
- STM32精英版(正点原子STM32F103ZET6开发板)学习篇15——RTC实时时钟+备份区域BKP
摘抄自正点原子官方PPT 什么是RTC? RTC (Real Time Clock):实时时钟,是个独立的定时器.RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能.修 ...
最新文章
- FPGA之道(12)FPGA芯片的配置方式
- C#中删除目录以及目录下文件的方法
- mybatis初始化过程
- [WC2018]州区划分(FWT_OR卷积)
- 关于如何在Python中使用静态、类或抽象方法的权威指南
- mac编译安装apache+php+mysql开发环境
- 简单应用定时器和监听器
- 使用ElasticSearch6.0快速实现全文搜索功能
- POJ1338 amp; POJ2545 amp; POJ2591 amp; POJ2247 找给定规律的数
- xml 文件属性修改
- jsp连接MYSQL数据库教程(文字+图)
- java条形码解析_Java 生成、识别条形码
- 2022年中职网络空间安全国赛竞赛题解析仅代表自己的建议——2022年中职网络安全国赛竞赛试题1解析
- 计算机操作系统锁定如何解锁,笔记本键盘锁定,小编教你笔记本键盘锁定怎么解锁...
- Linux多个小压缩文件合并一个压缩文件命令
- 设计模式 -- 访问者模式(Visitor)
- 使用C++设计贪食蛇小游戏
- vmware虚拟机中的Linux桥接模式上网
- 规划求解 python_使用Python/PuLp解决线性规划问题
- Spring boot +Mybaits