嵌入式每日500(4)231104 (Flash类型定义、Flash常量定义、Flash函数)
文章目录
- 1.Flash类型定义(两个结构体)
- 2.Flash常量定义(3种)
- 3.Flash函数(31个,FLASH分为两个区,一个是普通的存储空间,一个是选项字节OB,函数名里带OB的就是对选项字节空间的操作)
1.Flash类型定义(两个结构体)
//Flash程序结构定义
//FLASH_ProcedureTypeDef
typedef enum
{FLASH_PROC_NONE = 0,FLASH_PROC_PAGEERASE = 1,FLASH_PROC_MASSERASE = 2,FLASH_PROC_PROGRAMHALFWORD = 3,FLASH_PROC_PROC_PROGRAMWORD = 4,FLASH_PROC_PROGRAMDOUBLEWORD = 5
}FLASH_RrocedureTypeDef;//Flash处理结构定义
//FLASH_ProcessTypeDef
typedef struct
{_IO FLASH_ProcessTypeDef ProcedureOnGoing; //在IT环境下使用内部变量来表示程序是否正在进行_IO uint32_t DataRemaining;//在IT环境下使用内部变量用来保存要擦除的其余页或半字编程_TO uint32_t Address;//用来保存编程模式或擦除地址的内部变量_IO uint64_t Data;//用来保存编程数据的内部变量HAL_LockTypeDef Lock;//Flash锁存对象_IO uint32_t ErrorCode;//Flash错误代码,该参数可以是FLASH_Error_Codes的值之一
}FLASH_ProcessTypeDef;
2.Flash常量定义(3种)

3.Flash函数(31个,FLASH分为两个区,一个是普通的存储空间,一个是选项字节OB,函数名里带OB的就是对选项字节空间的操作)
| 序号 | 函数名 | 功能描述 |
|---|---|---|
| 1 | FLASH_PageErase | 删除指定的Flash存储页 |
| 2 | FLASH_Program_HalfWord | 在指定的地址编程(写入)半字 |
| 3 | FLASH_SetErrorCode | 置位指定的Flash错误标志位 |
| 4 | FLASH_WaitForLastOperation | 等待一个Flash操作结束 |
| 5 | HAL_FLASH_EndofOperationCallback | Flash操作结束中断回调函数 |
| 6 | HAL_FLASH_IRQHandler | 处理中断请求函数 |
| 7 | HAL_FALSH_OperationErrorCallback | Flash操作错误中断回调函数 |
| 8 | HAL_FLASH_Program | 在指定的地址以半字、字或双字编程 |
| 9 | HAL_FLASH_Program_IT | 在指定的地址以半字、字或双字编程,并使能中断 |
| 10 | HAL_FLASH_Lock | 锁定Flash控制寄存器访问 |
| 11 | HAL_FLASH_OB_Launch | 启动选项字节的装载 |
| 12 | HAL_FLASH_OB_Lock | 解锁Flash控制寄存器访问 |
| 13 | HAL_FLASH_OB_Unlock | 解锁Flash控制寄存器访问 |
| 14 | HAL_FLASH_Unlock | 解锁Flash控制寄存器访问 |
| 15 | HAL_FLASH_GetError | 获取特定的Flash错误标志位 |
| 16 | FLASH_MaseErase | 全部擦除Flash存储器组 |
| 17 | FLASH_OB_DisableWRP | 禁用目标页面写保护 |
| 18 | FLASH_OB_EnableWRP | 对目标页面使能写保护 |
| 19 | FLASH_OB_GetRDP | 返回Flash写保护级别 |
| 20 | FLASH_OB_GetUser | 返回Flash用户选项字节的值 |
| 21 | FLASH_OB_GetWRP | 返回Flash写保护选项字节的值 |
| 22 | FLASH_OB_ProgramData | 对指定的选项字节数据地址使用半字节编程 |
| 23 | FLASH_OB_RDP_LevelConfig | 设置读保护级别 |
| 24 | FLASH_OB_UserConfig | 编程Flash用户选项字节 |
| 25 | FLASH_PageErase | 删除指定的Flash存储器页面 |
| 26 | HAL_FLASHEx_Erase | 执行块擦除或擦除指定的Flash存储器页面 |
| 27 | HAL_FLASHEx_Erase_IT | 执行块擦除或擦除指定的Flash存储器页面并使能中断 |
| 28 | HAL_FLASHEx_OBErase | 删除Flash选项字节 |
| 29 | HAL_FLASHEx_OBGetConfig | 获取选项字节配置 |
| 30 | HAL_FLASHEx_OBGetUserData | 获取选项字节用户数据 |
| 31 | HAL_FLAHEx_OBProgram | 编程选项字节 |































相关文章:
嵌入式每日500(4)231104 (Flash类型定义、Flash常量定义、Flash函数)
文章目录 1.Flash类型定义(两个结构体)2.Flash常量定义(3种)3.Flash函数(31个,FLASH分为两个区,一个是普通的存储空间,一个是选项字节OB,函数名里带OB的就是对选项字节空…...
21款奔驰GLC300L升级23P驾驶辅助 出行更加的安全
驾驶辅助和自动驾驶的区别就是需要人为去接管,虽然车辆会根据道路自己行驶,弯道上也能居中自动修正行驶,长时间不接管方向盘,系统会提示人为接管,这就是奔驰的23P驾驶辅助系统, 很多车友升级23P驾驶辅助系…...
【小黑嵌入式系统第七课】PSoC® 5LP 开发套件(CY8CKIT-050B )——PSoC® 5LP主芯片、I/O系统、GPIO控制LED流水灯的实现
上一课: 【小黑嵌入式系统第六课】嵌入式系统软件设计基础——C语言简述、程序涉及规范、多任务程序设计、状态机建模(FSM)、模块化设计、事件触发、时间触发 文章目录 一、PSoC 5LP主芯片二、PSoC 5LP I/O系统(1) I/O系统特性(2) I/O系统怎样运作?1、I/…...
深度学习简史
一、说明 为了学习好深度学习,有必要知道深度学习的整个成长历史,可以说,深度学习的发展历程伴随整个人工智能的成长历程,本文将介绍这个历程的关键性历史节点。 二、深度学习的旅程 2.1 深度学习的当前认知 深度学习是机器学习的…...
CSRF 和 XSS 是什么
在Web开发中,安全性是至关重要的。然而,随着网络攻击技术的不断演进,跨站请求伪造(CSRF)和跨站脚本攻击(XSS)成为了最常见和具有破坏力的网络安全威胁之一。本文将介绍CSRF和XSS的概念、原理以及…...
亚信科技发布“电信级”核心交易数据库AntDB7.0,助力政企“信”创未来!
昨日,亚信科技AntDB数据库 7.0产品线上发布会成功举办,数千位关注亚信科技、关注国产数据库,致力于推动数据库行业变革的专家、客户热情参与,并对发布会及产品给予高度评价。 新增两大技术特性 作为我国最早一批独立研发的通用型…...
硬件调试-电源纹波测量
硬件调试-电源纹波测量 Fang XS.1452512966qq.com如果有错误,希望被指出,学习技术的路难免会磕磕绊绊量的积累引起质的变化感谢酸奶大佬提供的硬件技术指导; 电源纹波 百度百科定义如下: 纹波是由于直流稳定电源的电压波动而造…...
【洛谷算法题】P5710-数的性质【入门2分支结构】
👨💻博客主页:花无缺 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5710-数的性质【入门2分支结构】🌏题目描述🌏输入格式&a…...
arcgis图上添加发光效果!
看完本文, 你可以不借助外部图片素材, 让你的图纸符号表达出你想要的光! 我们以之前的某个项目图纸为例,来介绍下让符号发光的技术! 第一步—底图整理 准备好栅格影像底图、行政边界的矢量数据,确保“数据合适、位置正确、边界吻合”。 确定好图纸的大小、出图比例、投…...
[MySQL]——SQL预编译、动态sql
键盘敲烂,年薪30万🌈 目录 一、SQL的预编译 📕一条SQL语句的执行过程 📕弊端 📕预编译SQL的优势 📕两种参数占位符 📕小结 二、动态SQL 📕概念介绍: Ǵ…...
安装ifconfig命令(两步搞定)
如果你输入ifconfig显示没有这条命令,最可能的原因就是你在安装CentOS,先择的是最小安装模式,默认不安装ifconfig等命令, 解决办法:1. yum安装ifconfig这个命令包。命令:yum search ifconfig 2.通过yum …...
【蓝桥杯 第十届省赛Java B组】真题训练(A - H)H待更新
目录 A、组队 - 看图一眼出答案 B、不同子串 - 字符串模拟 set去重 C、数列求值 - 模拟取余 D、数的分解 - 三重暴力 E、迷宫 - bfs 判断路径 F、特别数的和 - 弱智模拟 G、外卖店优先级 - map 暴力(90%通过率) H、人物相关性分析 - A、组队 -…...
【牛客题】二进制求和 <模拟>
给定两个用字符串表示的二进制数,返回他们的和。 数据范围:字符串长度满足 1 ≤ n ≤ 1 0 5 10^5 105 ,字符串中只含有 0 和 1,且保证除 0 以外的二进制数没有前导零的情况。 示例输入: "101","1&qu…...
Error:Only idle or expired IP address can be disabled.
华为数通设备,在配置DHCP排除地址时可能会出现以下情况 Error:Only idle or expired IP address can be disabled. 这是因为地址已经被分配出去,所以现在无法进行排除 解决方法 1.先进入接口关闭DHCP [CE2-GigabitEthernet0/0/1]undo dhcp select g…...
Xubuntu16.04系统中create_ap开启5G网络的踩坑记录
Xubuntu16.04系统中安装create_ap创建无线AP: https://blog.csdn.net/qq_45445740/article/details/133972642?spm1001.2014.3001.5501 目录 1.create_ap.conf 配置文件解析2.关于信号强度和延时2.1 信号强度2.2 信号延时2.3 网络延时测试工具推荐——PingPlotter …...
8. 一文快速学懂常用工具——Linux命令(上)
本章讲解知识点 引言 指令学习 本专栏适合于软件开发刚入职的学生或人士,有一定的编程基础,帮助大家快速掌握工作中必会的工具和指令。本专栏针对面试题答案进行了优化,尽量做到好记、言简意赅。如专栏内容有错漏,欢迎在评论区指…...
@RestController注解说明
在Spring框架中,RestController注解是一个非常重要的注解,它用于将一个类标记为RESTful风格的控制器。本文将详细介绍RestController注解的作用和用法,并提供示例以帮助读者更好地理解和使用它。 RestController的作用 RestController注解是…...
Excel中行列范围的转换
将 行:1,4-5,8,11 列:a,c-e,f 这种写法转换成单元格地址的方法。 public static Tuple<List<int>, List<string>> ConvertRowColumn(string rowRep, string colRep){List<int> rowIdxs new List<int>();rowRep rowRep.…...
golang的类型断言
前言:原因很简单,写的代码panic了。报错如下。为此专门看下golang的类型断言。 “[PANIC]interface conversion: interface {} is string, not float64”。 1、类型断言(assertion) 所谓“类型断言”即判断一个变量是不是某个类型的实例(简单来讲就是判…...
监听dom变化,监听dom属性变化
一、利用new MutationObserver const config {attributes: true, // 监听属性变化childList: true, // 监听子节点变subtree: true // 监听后代元素变化};jianting new MutationObserver(() > {this.changeFun()});jianting.observe(dom, config) /监听 jianting.disconne…...
jvm垃圾回收器 - G1详解
G1垃圾收集器发展史与工作原理 G1(Garbage First,垃圾优先)收集器是JVM垃圾收集技术发展史上的里程碑之作,它开创了面向局部收集的设计思路和基于Region的内存布局形式,定位为CMS收集器的替代者和继承人。一、发展史 1…...
模型不确定性下的公平性评估:自一致性指标与集成弃权策略
1. 项目概述:当公平性评估遭遇模型不确定性在机器学习,尤其是公平性评估这个领域,我们常常会陷入一种“确定性幻觉”。我们训练一个模型,在某个测试集上计算其误判率、假阳性率、假阴性率,然后得出一个结论:…...
CSS Flexbox高级技巧:构建灵活的响应式布局
CSS Flexbox高级技巧:构建灵活的响应式布局 引言 Flexbox是CSS3引入的一维布局模型,它提供了强大的灵活布局能力。本文将深入探讨Flexbox的高级技巧和最佳实践,帮助你构建更优雅的响应式布局。 一、Flexbox核心概念回顾 .container {display:…...
8051单片机端口操作:输入缓冲器与锁存器的区别与应用
1. C51端口输入与锁存器读取的本质区别在8051单片机开发中,端口操作有个容易被忽视但至关重要的细节:当你执行端口读写指令时,处理器实际访问的可能是两个不同的物理寄存器。以P1端口为例:输入缓冲器(Port Input&#…...
内存访问向量技术如何提升CPU性能模拟精度
1. 从20%误差到98%精准:内存访问向量如何革新CPU性能模拟 在处理器设计领域,性能模拟的准确性直接关系到数亿美元研发投入的成败。传统SimPoint采样方法虽然大幅降低了仿真时间,但当遇到523.xalancbmk_r这类具有复杂间接内存访问模式的基准测…...
企业级MCP Server OAuth授权接入的七层防御实践
1. 这不是又一篇“OAuth流程图”——企业级MCP Server为什么必须自己实现授权接入你有没有遇到过这样的场景:公司新上线的内部运维平台(我们暂且叫它MCP,即Monitoring & Control Platform)需要对接钉钉、飞书或企业微信的组织…...
服务器被入侵后如何应急响应:安全运维实战指南
1. 这不是演习:当告警邮件凌晨三点弹出来时,你手边该有什么 “服务器CPU持续100%、SSH登录异常增多、/tmp目录下出现陌生可执行文件”——这类告警我见过太多次。不是在靶场演练,不是在CTF赛题里,而是真实发生在某次金融客户核心A…...
芯片设计文档查找与管理指南
1. 逻辑IP/标准单元/平台用户指南查找指南作为一名芯片设计工程师,我经常需要查阅各种工艺库和IP核的文档。最近有同事问我:"为什么在Logic IP库下载包里找不到用户指南?"这其实是个常见问题,我来分享一下我的经验。在芯…...
LeetCode 523:连续的子数组和 | 前缀和同余定理
LeetCode 523:连续的子数组和 | 前缀和同余定理 引言 连续的子数组和(Continuous Subarray Sum)是 LeetCode 第 523 题,难度为 Medium。题目要求判断数组中是否存在长度至少为 2 的连续子数组,其元素和是 K 的倍数。这…...
C#巧用Spire.XLS for .NET隐藏或显示Excel网格线
在日常的数据处理和报表生成中,Excel是我们不可或缺的工具。然而,你是否曾遇到这样的场景:辛苦制作的报表,因为默认显示的网格线而显得不够专业,或是某些数据可视化图表,网格线反而成了干扰?手动…...
