当前位置: 首页 > news >正文

STM32---备份寄存器BKP和 FLASH学习使用

 BKP库函数

学习BKP,首先就是知道BKP每一个函数的作用然后如何使用即可 

使用备份域的作用只需要操作上面的两个函数即可,其余的都是它的其他功能 

 BKP简介


备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份域里,当VDD电源被切断,他们仍然由VBAT维持供电(但是如果VDD和VBAT都没有电源的话,那么备份域的数据就会丢失,并且在VDD电源存在时,VBAT不会供电,为了省电,因为一般VBAT使用的是纽扣电池)。当系统在待机模式下被唤醒,或系统复位或电源复位时,他们也不会被复位。


此外, BKP控制寄存器用来管理侵入检测和RTC校准功能

侵入检测事件将所有数据备份寄存器内容清除

复位后,对备份寄存器和RTC的访问被禁止,并且备份域被保护以防止可能存在的意外的写操作。执行以下操作可以使能对备份寄存器和RTC的访问。
● 通过设置寄存器RCC_APB1ENR的PWREN和BKPEN位来打开电源和后备接口的时钟
● 电源控制寄存器(PWR_CR)的DBP位来使能对后备寄存器和RTC的访问

//先进行RCC操作/* Enable PWR(电源控制) and BKP clock */   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);/* Enable write access to Backup domain */    PWR_BackupAccessCmd(ENABLE);/* Clear Tamper pin Event(TE) pending flag */   BKP_ClearFlag();  //这个可要可不要

 FLASH库函数

FLAHS常见的操作:人为擦除程序、人为输入程序 

个人觉得看HAL库的函数即可,标准库的函数写的太复杂,还是HAL库开发更快一点

人为装入代码操作

场景:从指定地址开始写入指定长度的32Bit数据 

先解锁FLASH,再循环写入数据从起始地址(数据分一个字节还是两个字节),一次只能装一个字节或者两个字节(基于自己选择的函数来定),然后我们一般不会只写一个字节或者两个字节而是会写很多数据,因此我们需要人为的加减地址

/*-------------------------------------------------*/
/*函数名:从指定地址开始写入指定长度的64it数据    */
/*参  数:WriteAddr:写入地址                      */
/*参  数:pBuffer:写入的数据                      */
/*参  数:NumToWrite:写入的数据长度               */
/*返回值:0 正确 非零 错误                         */
/*-------------------------------------------------*/
uint8_t Stm32Flash_Write(uint32_t WriteAddr, uint64_t *pBuffer,uint32_t NumToWrite)	
{ HAL_FLASH_Unlock();                                                                             //解锁while(NumToWrite){//循环写入数据if (HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, WriteAddr, *pBuffer) != HAL_OK){        //一次写入8字节数据,并判断是否写入正确,如果错误进入ifHAL_FLASH_Lock();                                                                       //上锁return 1;	                                                                            //返回1}WriteAddr += 8;                                                                             //写入正确的话,地址下移8个字节                        pBuffer++;                                                                                  //数据下移8个字节,接着往后写入数据 NumToWrite -=8;                                                                             //待写入数据量-8字节                   		} HAL_FLASH_Lock();                                                                               //上锁return 0;                                                                                       //正确,返回0
}//上面的函数是基于HAL库的,而且HAL库的函数更加简洁,标准库写的太复杂,不太推荐使用标准库开发
//HAL库能轻松的解决,而标准库需要好几个函数一起配合才能解决问题

 

 

相关文章:

STM32---备份寄存器BKP和 FLASH学习使用

BKP库函数 学习BKP,首先就是知道BKP每一个函数的作用然后如何使用即可 使用备份域的作用只需要操作上面的两个函数即可,其余的都是它的其他功能 BKP简介 备份寄存器是42个16位的寄存器,可用来存储84个字节的用户应用程序数据。他们处在备份…...

Python-生成元组和字典

1.生成元组元组是元素按顺序组合后的产物,元组对象的类型是tuple型含有两个元素的元组成为数据对元组可以包含任意数量和任意类型的元素,其元素总数可以为0、1、2等,并且元素的先后顺序是由意义的。另外,元组中的元素类型没有必要…...

I.MX6ULL内核开发10:设备树

目录 一、设备树简介 二、设备树源码 三、获取设备树信息 1、增加设备节点 2、内核编译设备树 3、替换设备树文件 4、查看设备树节点 5、在驱动中获取节点的属性 6、编译驱动模块 7、加载模块 一、设备树简介 设备树的作用是描述一个硬件平台的硬件资源。这个“设备树…...

【大数据】记一次hadoop集群missing block问题排查和数据恢复

问题描述 集群环境总共有2个NN节点,3个JN节点,40个DN节点,基于hadoop-3.3.1的版本。集群采用的双副本,未使用ec纠删码。 问题如下: bin/hdfs fsck -list-corruptfileblocks / The list of corrupt files under path…...

国产音质好的蓝牙耳机有哪些?国产音质最好的耳机排行

随着时间的推移,真无线蓝牙耳机逐渐占据耳机市场的份额,成为人们日常生活中必备的数码产品之一。蓝牙耳机品牌也多得数不胜数,哪些国产蓝牙耳机音质好?下面,我们从音质出来,来给大家介绍几款国产蓝牙耳机&a…...

CTFer成长之路之XSS的魔力

XSS的魔力CTF XSS闯关 题目描述: 你能否过关斩将解决所有XSS问题最终获得flag呢? docker-compose.yml version: "3.2"services:xss:image: registry.cn-hangzhou.aliyuncs.com/n1book/web-xss:latestports:- 3000:3000启动方式 docker-compose up -…...

行锁、表锁、主键外键、表之间的关联关系

Java知识点总结:想看的可以从这里进入 目录2.4、行锁、表锁2.5、主键、外键2.5.1、主键2.5.2、外键2.6、表的关联关系2.4、行锁、表锁 MyISAM默认采用表级锁,InnoDB默认采用行级锁。 表锁:开销小,加锁快,不会出现死锁…...

JavaScript 进阶(面试必备)--charater4

文章目录前言一、深浅拷贝:one: 浅拷贝:two:深拷贝二、异常处理:one: throw 抛异常:two: try /catch 捕获异常:three:debugger三、处理thisthis指向 :one:普通函数this指向this指向 :two: 箭头函数this指向3.2 改变this:one: call():two: apply():three: bind()四、性能优化:on…...

ARM+FPGA架构开发板PCIE2SCREEN示例分析与测试-米尔MYD-JX8MMA7

本篇测评由电子发烧友的优秀测评者“zealsoft”提供。 本次测试内容为米尔MYD-JX8MMA7开发板其ARM端的测试例程pcie2screen并介绍一下FPGA端程序的修改。 ​ 01. 测试例程pcie2screen 例程pcie2screen是配合MYD-JX8MMA7开发板所带的MYIR_PCIE_5T_CMOS 工程的测试例&#…...

51单片机入门 - SDCC / Keil_C51 会让没有调用的函数参与编译吗?

Small Device C Compiler(SDCC)是一款免费 C 编译器,适用于 8 位微控制器。 不想看测试过程的话可以直接划到最下面看结论:) 关于软硬件环境的信息: Windows 10STC89C52RCSDCC (构建HEX文件&…...

OpenCV只含基本图像模块编译

编译OpenCV4.5.5只含基本图像模块,环境为Windows10 x64CMake3.23.3VS2019。默认编译选项编译得到的OpenCV库往往大几百MB甚至上GB,本文配置下编译得到的库压缩后得到的zip包大小仅6.25MB,适合使用OpenCV基本图像功能模块的项目移植而不牵涉其…...

Java实现阴历日历表(附带星座)

准备工作 1.无敌外挂(GitHub直达源码) Nobb 直击灵魂 https://github.com/xuyishanBD/Java_create_calendar.git2.maven配置(如果没有走上面的捷径) <dependencies><dependency><groupId>net.sourceforge.javacsv</groupId><artifactId>javac…...

Python入门之最基础

Python入门之最基础 IDLE有两种模式&#xff0c;一种是交互模式&#xff0c;通俗讲就是写一个代码&#xff0c;会得到相应的反馈&#xff0c;另一种为编辑模式. 注意事项&#xff1a; 标点符号一定要用英文符号 要注意缩进 dir(builtins)可以看到python所有的内置函数&#…...

浏览器缓存策略

先走强缓存&#xff0c;再走协商缓存 强缓存 不发送请求&#xff0c;直接使用缓存的内容 状态码200 当前会话没有关闭的话就是走memory cache&#xff0c;否则就是disk cache 由响应头的 Pragma&#xff08;逐渐废弃&#xff0c;优先级最高&#xff09;&#xff0c;catch-…...

高清无码的MP4如何采集?python带你保存~

前言 大家早好、午好、晚好吖 ❤ ~ 又是我,我又来采集小姐姐啦~ 这次我们采集的网站是(看下图): 本文所有模块\环境\源码\教程皆可点击文章下方名片获取此处跳转 话不多少,我们赶快开始吧~ 第三方模块: requests >>> pip install requests 如果安装python第三方模块…...

python+pytest接口自动化(1)-接口测试基础

接口定义一般我们所说的接口即API&#xff0c;那什么又是API呢&#xff0c;百度给的定义如下&#xff1a;API&#xff08;Application Programming Interface&#xff0c;应用程序接口&#xff09;是一些预先定义的接口&#xff08;如函数、HTTP接口&#xff09;&#xff0c;或…...

go单元测试

接着上一篇中的go module创建项目calc为例&#xff0c;在simplemath包中&#xff0c;是使用在命令行中使用交互式的方式进行测试&#xff0c;现在可以为这几个函数实现单元测试&#xff0c; go test&#xff0c;这个测试工具来自于 Go 官方的 gc 工具链。 运行 go test 命令将执…...

Mybatis之一级缓存二级缓存

介绍 缓存&#xff0c;就是将经常访问的数据&#xff0c;放到内存中&#xff0c;减少对数据库的访问&#xff0c;提高查询速度。Mybatis中也有缓存的概念&#xff0c;分为一级缓存和二级缓存。 一级缓存 一级缓存是Mybatis中SqlSession对象的缓存。当我们执行查询以后&#x…...

人脸考勤机项目

文章内容如下&#xff1a; 1&#xff09;项目简介 2&#xff09;开发环境和使用的技术知识 3&#xff09;功能实现 4&#xff09;项目源码 一。项目简介 此项目是基于HOG和Dlib开发的一套实时无感考勤系统。首先是待考勤人员的个人信息录入。然后在过道或者入口处装置人脸…...

Python编程自动化办公案例(3)

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.前几章代码 1.获取到第一题的选项单元格 2.实现批量获取文件 二. 批…...

EfficientViT语义分割深度解析:从Cityscapes到实时应用

EfficientViT语义分割深度解析&#xff1a;从Cityscapes到实时应用 【免费下载链接】efficientvit EfficientViT is a new family of vision models for efficient high-resolution vision. 项目地址: https://gitcode.com/gh_mirrors/ef/efficientvit EfficientViT语义…...

FastAPI异步测试终极指南:如何快速模拟HTTP请求进行高效测试

FastAPI异步测试终极指南&#xff1a;如何快速模拟HTTP请求进行高效测试 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi FastAPI异步测…...

Excel报表自动化:用JXLS实现动态数据填充的5个高级技巧

Excel报表自动化&#xff1a;用JXLS实现动态数据填充的5个高级技巧 每次看到同事手动复制粘贴数据到Excel模板时&#xff0c;我都忍不住想分享JXLS这个神器。作为Java开发者&#xff0c;我们完全可以用代码实现专业级报表自动化&#xff0c;告别重复劳动。本文将带你深入JXLS的…...

BALM2深度解析 | 港大MARS实验室如何用点簇革新激光BA?

1. 激光BA的痛点与BALM2的突破 激光SLAM领域一直面临一个核心难题&#xff1a;如何高效处理海量点云数据的同时保证位姿估计的精度&#xff1f;传统激光BA&#xff08;Bundle Adjustment&#xff09;方法在处理大规模场景时&#xff0c;往往陷入计算资源的泥潭。我曾在实际项目…...

StructBERT中文相似度模型企业应用指南:对接CRM、知识库、智能客服系统的完整集成方案

StructBERT中文相似度模型企业应用指南&#xff1a;对接CRM、知识库、智能客服系统的完整集成方案 1. 企业级文本相似度应用概述 在当今企业数字化运营中&#xff0c;文本相似度计算技术正成为提升业务效率的关键工具。StructBERT中文相似度模型基于百度先进的大模型技术&…...

虚幻引擎+数字孪生:手把手搭建智慧校园三维可视化平台(附浙江工商大学实战案例)

虚幻引擎数字孪生&#xff1a;从零构建智慧校园三维可视化平台的完整指南 想象一下&#xff0c;清晨走进校园时&#xff0c;管理员已经在三维可视化平台上完成了安防巡查&#xff1b;教务主任通过热力图调整着今天的课程安排&#xff1b;后勤人员正根据实时数据优化能源分配——…...

双轨制新零售系统模式开发解析

双轨制新零售系统模式开发解析&#xff1a;从架构设计到合规落地在新零售数字化转型浪潮中&#xff0c;双轨制模式凭借其轻量化组织架构与高效裂变能力&#xff0c;成为企业低成本获客与业绩增长的重要工具。不同于传统多级分销的复杂层级&#xff0c;双轨制通过“二二复制”的…...

基于国标12190-2021的电磁屏蔽箱多频段测试优化方案

1. 电磁屏蔽箱测试的核心挑战与国标12190-2021的价值 当你第一次接触电磁屏蔽箱测试时&#xff0c;可能会被各种专业术语和复杂的测试流程搞得晕头转向。我刚开始做这行时&#xff0c;最头疼的就是如何确保测试结果既全面又准确——特别是在不同频段下&#xff0c;屏蔽效能差异…...

5个实战技巧深度解析:XUnity.AutoTranslator如何革新Unity游戏多语言体验

5个实战技巧深度解析&#xff1a;XUnity.AutoTranslator如何革新Unity游戏多语言体验 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator XUnity.AutoTranslator作为一款创新的开源实时翻译插件&#xff0c;为…...

SVN检出报错大全:从E170011到E120106的实战解决手册(附cleanup的正确用法)

SVN检出报错实战指南&#xff1a;从E170011到E120106的深度解析与解决方案 引言&#xff1a;SVN检出报错的常见场景与应对思路 在团队协作开发中&#xff0c;版本控制系统扮演着至关重要的角色。作为集中式版本控制的代表&#xff0c;SVN&#xff08;Subversion&#xff09;至今…...