STM32的备份寄存器测试
1. 研究STM3的备份寄存器,注意,如果要测试这个例程的话,VBAT不能和VDD接一起,必须分开。
2. 理解,备份寄存器可以有VBAT独立供电,也就是外接电池,备份寄存器在VBAT供电情况下,如果发生系统复位(按键复位)和上电复位,备份寄存器的值可以保持。
3. 代码如下:
1 int main(void) 2 { 3 #ifdef DEBUG 4 debug(); 5 #endif 6 7 /* System Clocks Configuration */ 8 RCC_Configuration(); 9 10 /* NVIC configuration */ 11 NVIC_Configuration(); 12 13 /* GPIO configuration */ 14 GPIO_Configuration(); 15 16 /* Enable PWR and BKP clock */ 17 RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); 18 19 /* Enable write access to Backup domain */ 20 PWR_BackupAccessCmd(ENABLE); 21 22 /* Clear Tamper pin Event(TE) pending flag */ 23 BKP_ClearFlag(); 24 25 //首先判断是不是上电复位的 26 if(RCC_GetFlagStatus(RCC_FLAG_PORRST) != RESET) 27 { 28 /* Clear reset flags */ 29 RCC_ClearFlag(); 30 31 /* Turn on led connected to GPIO_LED Pin8 */ 32 GPIO_SetBits(GPIO_LED, GPIO_Pin_8); 33 34 /* Check if Backup data registers are programmed */ 35 if(CheckBackupReg(0x3211) == 0x00) 36 { /* Backup data registers values are correct */ 37 38 /* Turn on led connected to GPIO_LED Pin6 */ 39 GPIO_SetBits(GPIO_LED, GPIO_Pin_6); 40 } 41 else 42 { /* Backup data registers values are not correct or they are not yet 43 programmed (when the first time the program is executed) */ 44 45 /* Write data to Backup data registers */ 46 WriteToBackupReg(0x3211); 47 48 /* Turn on led connected to GPIO_LED Pin7 */ 49 GPIO_SetBits(GPIO_LED, GPIO_Pin_7); 50 } 51 } 52 53 /* Turn on led connected to GPIO_LED Pin9 */ 54 GPIO_SetBits(GPIO_LED, GPIO_Pin_9); 55 56 while (1) 57 { 58 } 59 }
4. 测试,第一次上电,亮灯LED7,LED8,LED9,然后VDD断电重新上电,亮灯LED6,LED8,LED9,然后按复位按键,亮灯LED9(代码只检查是不是上电复位)
5. 程序比较简单,主要是备份寄存器的作用。
转载于:https://www.cnblogs.com/429512065qhq/p/8082717.html
STM32的备份寄存器测试相关推荐
- stm32之备份寄存器(BKP)应用(侵入检测中断)
前言:很多的嵌入式设备使用过程中,当系统掉电时,往往需要把一些用户设置的参数保存起来,或者是将掉电前的一些状态信息保存,或者是统计系统重启次数.保存这些动态信息其实有很多种方法,第一种:在系统掉电前保 ...
- STM32 备份寄存器操作
STM32系列为处理器都有备份寄存器,他它们处于备份区域里,当VDD电源被切断,它们仍然由VBAT维持供电,当系统在待机模式下被唤醒,或者系统复位或电源复位是,它们都不会被复位.以实时时钟RTC为例, ...
- STM32 之七 备份域(备份寄存器、备份SRAM)详解及数据丢失问题处理
某些STM32芯片提供了备份SRAM,例如STM32F系列芯片有4K的备份SRAM.然而在使用过程中发现备份区域数据丢失!下面从STM32系列芯片提供的整个备份域来看看啥情况. 电池备份域 首先, ...
- STM32学习心得二十一:实时时钟RTC和备份寄存器BKP特征、原理及相关实验代码解读
记录一下,方便以后翻阅~ 主要内容 1) RTC特征与原理: 2) BKP备份寄存器特征与原理: 3) RTC常用寄存器+库函数介绍: 4) 相关实验代码解读. 实验内容: 因为没有买LCD屏,所以计 ...
- 【STM32】HAL库-备份寄存器(BKP)
简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据. 他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电. 当系统在待机模式下被唤醒,或系统复位或电源复位时, ...
- stm32 hal库 rtc 备份 寄存器 备份sram 调试笔记
rtc 是可以单独供电的,通常设计rtc是带有一个纽扣电池用来给rtc供电.本次是调试rtc 的备份寄存器和备份sram,这两个都是可以在rtc不断电情况下一直保存数据. 步骤 配置rtc参数,用cu ...
- oracle 还原dmp时_报错的值太大,基于oracle数据库的CLOUD备份恢复测试
CLOUD oracle数据库备份恢复测试 强烈建议使用expdp/impdp,因为: 在expdp的时候Oracle不会再依赖和参考NLS_LANG的设置,而是完全按照数据库本身的字符集导出数据,i ...
- HDFS高级功能(防止用户的错误操作 备份 试验/测试 灾难恢复 配额 数据迁移)
HDFS高级功能(防止用户的错误操作 备份 试验/测试 灾难恢复 配额 数据迁移) 介绍HDFS的高级功能: 回收站 快照snapshot(一种备份) 配额 安全模式 回收站 和我们Window系统上 ...
- PC微信聊天记录备份恢复测试
PC微信聊天记录备份恢复测试 述:最近遇到一个同事电脑升级,电脑硬件(硬盘)都换了,出了一点问题,就是'微信聊天记录无法恢复',但是备份的文件已经复制到微信文件的默认保存位置了,测试开始. 测试微信版 ...
最新文章
- exchange 2010 指定用户邮箱连接CAS服务器
- 在账户确定类型KOFI没有找到总账科目
- [react] 为何说虚拟DOM会提高性能?
- 每天一道算法题(13)——使用递归颠倒栈
- python函数abs()
- [原创]markdown语法学习(commonmark)
- 3. react脚手架
- 约翰·冯·诺依曼及冯诺伊曼式计算机简介
- elasticsearch2.2之index映射参数的not_analyzed属性
- 在 Microsoft Visual Studio Team System 和 Microsoft Visual SourceSafe 之间选择
- 用了这个办法解决Discuz! Database Error报错
- gitee仓库迁移至gitlab仓库简单方法,保留提交记录
- Orserg WSPT WEB 安全项目组A-3项目训练文档
- 1096:数字统计(C C++)
- 路易斯安那州立大学计算机科学,路易斯安那州立大学
- Pycharm新建文件模板配置
- linux的systemctl命令介绍
- OSPF虚链接的基本配置
- 校园招聘的在线测评怎么回答?有什么标准?
- CMake安装或CMake Error at CMakeLists
热门文章
- Android现学现用第一天
- 技术人员转型是件痛苦的事情~
- step1 . day6 C语言基础练习之数组和字符串
- Codeforces Round #321 (Div. 2) B. Kefa and Company (尺取)
- (转载)你好,C++(19)“老师,我这次四级考试过了没有?”——4.2 条件选择语句...
- 从零开始编写自己的C#框架(20)——框架异常处理及日志记录
- Jmeter中JDBC链接配置 JDBC Connection Configuration
- mysql 查询优化 ~ explain与索引失效
- ORA-39083: + ORA-00439: 未启用功能
- 行情分发速度为王,谁是证券公司的生命线?