在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的使用相关推荐

  1. STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读

    记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...

  2. stm32之备份寄存器(BKP)应用(侵入检测中断)

    前言:很多的嵌入式设备使用过程中,当系统掉电时,往往需要把一些用户设置的参数保存起来,或者是将掉电前的一些状态信息保存,或者是统计系统重启次数.保存这些动态信息其实有很多种方法,第一种:在系统掉电前保 ...

  3. 【STM32】HAL库-备份寄存器(BKP)

    简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据. 他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电. 当系统在待机模式下被唤醒,或系统复位或电源复位时, ...

  4. STM32 备份寄存器操作

    STM32系列为处理器都有备份寄存器,他它们处于备份区域里,当VDD电源被切断,它们仍然由VBAT维持供电,当系统在待机模式下被唤醒,或者系统复位或电源复位是,它们都不会被复位.以实时时钟RTC为例, ...

  5. 28_RTC实时时钟BKP备份寄存器

    目录 RTC(Real Time Clock):实时时钟 RTC特征 RTC工作原理框图 BKP备份寄存器 RTC相关寄存器 配置RTC寄存器 配置过程: 读RTC寄存器 RTC相关库函数讲解 RTC ...

  6. stm32F103R6之BKP(备份寄存器)

    目录 概述 侵入检测 RTC校准 概述 Stm32F103有42个16位的备份寄存器.他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电.当系统在待机模式下被唤醒,或系统复位或电源复位时 ...

  7. STM32CubeMX HAL F103 BKP备份寄存器使用

    STM32CubeMX HAL F103 BKP备份寄存器使用 以下是本人自己的应用笔记,如果有错误的地方,欢迎评论区指出,我会及时更正-[2021.09.28] 1.需要开启RTC功能 2.API调 ...

  8. STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理

    某些STM32芯片提供了备份SRAM,例如STM32F系列芯片有4K的备份SRAM.然而在使用过程中发现备份区域数据丢失!下面从STM32系列芯片提供的整个备份域来看看啥情况. 电池备份域   首先, ...

  9. STM32的备份寄存器测试

    1. 研究STM3的备份寄存器,注意,如果要测试这个例程的话,VBAT不能和VDD接一起,必须分开. 2. 理解,备份寄存器可以有VBAT独立供电,也就是外接电池,备份寄存器在VBAT供电情况下,如果 ...

  10. STM32精英版(正点原子STM32F103ZET6开发板)学习篇15——RTC实时时钟+备份区域BKP

    摘抄自正点原子官方PPT 什么是RTC?   RTC (Real Time Clock):实时时钟,是个独立的定时器.RTC模块拥有一个连续计数的计数器,在相应的软件配置下,可以提供时钟日历的功能.修 ...

最新文章

  1. FPGA之道(12)FPGA芯片的配置方式
  2. C#中删除目录以及目录下文件的方法
  3. mybatis初始化过程
  4. [WC2018]州区划分(FWT_OR卷积)
  5. 关于如何在Python中使用静态、类或抽象方法的权威指南
  6. mac编译安装apache+php+mysql开发环境
  7. 简单应用定时器和监听器
  8. 使用ElasticSearch6.0快速实现全文搜索功能
  9. POJ1338 amp; POJ2545 amp; POJ2591 amp; POJ2247 找给定规律的数
  10. xml 文件属性修改
  11. jsp连接MYSQL数据库教程(文字+图)
  12. java条形码解析_Java 生成、识别条形码
  13. 2022年中职网络空间安全国赛竞赛题解析仅代表自己的建议——2022年中职网络安全国赛竞赛试题1解析
  14. 计算机操作系统锁定如何解锁,笔记本键盘锁定,小编教你笔记本键盘锁定怎么解锁...
  15. Linux多个小压缩文件合并一个压缩文件命令
  16. 设计模式 -- 访问者模式(Visitor)
  17. 使用C++设计贪食蛇小游戏
  18. vmware虚拟机中的Linux桥接模式上网
  19. 规划求解 python_使用Python/PuLp解决线性规划问题
  20. Spring boot +Mybaits

热门文章

  1. 改进型MPPT算法C源代码仿真
  2. HTML——HTML基础语法
  3. UML基础(八)--构件图
  4. StarUML 3 中文文档 构件图
  5. AlphaControls TsSkinManager 控件
  6. 西瓜书重温(七): 贝叶斯分类器(手推+代码demo)
  7. 虚拟光驱下载安装和使用,Windows系统如何直接打开iso文件
  8. 生物医学信号处理之数字信号处理基础
  9. [系统安全] 十三.熊猫烧香病毒IDA和OD逆向分析(中)病毒释放机理
  10. Ping32文档加密软件有哪些特点