2023版 STM32实战10 内部Flash读写

news2025/1/31 8:16:21

简介和注意事项

-1-STM32内部提供了闪存区域,用来存储用户代码和自定义数据

-2-F1系列的写入最少两字节(半字)

-3-每个地址存8位数据

-4-写入之前需要解锁,写完需要上锁

-5-读取不需要解锁

存储器分布

以下三张图可清楚的看到三种芯片的内存分布情况

STM32F103C6T6(小容量)
在这里插入图片描述
STM32F103C8T6(中容量)
在这里插入图片描述
STM32F103ZET6(大容量)
在这里插入图片描述

代码编写 (F1可直接拷贝使用)


void Flash_Write(u32 address)
{
	FLASH_Unlock();
	FLASH_ErasePage(address);
	FLASH_ProgramHalfWord(address,0x1188);
	FLASH_Lock();
}


void Flash_Write_Data(u32 address,u16 *data,u8 len)
{
	u8 i=0;

	//解锁
	FLASH_Unlock();
	//擦除
	FLASH_ErasePage(address);
	//写入
	for( i=0;i<len;i++)
	{
		FLASH_ProgramHalfWord(address,*data);
		address+=2;
		data+=1;
	}
	//上锁
	FLASH_Lock();
}

u8 Flash_Read(u32 faddr)
{
	return *(vu16*)faddr; 
}

Flash_Write_Data(0X08070000,(u16*)data2,3);

工程获取

三连加关注后点击头像获取

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1094166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SLAM从入门到精通(bresenham绘制算法)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们说过&#xff0c;学术界和工业界对于slam的要求是不一样的。前者要求robot在运动的过程中&#xff0c;同步实现定位和制图的操作。但是工业…

罗德施瓦兹频谱仪使用笔记

本文主要介绍罗德频谱仪的两个重要参数RBW和VBW&#xff0c;以及测量设置&#xff0c;以帮助初学者理解频谱解析以及频谱仪的具体使用。 一、什么是RBW和VBW&#xff0c;它们对测量得到结果的影响。 在罗德施瓦兹频谱仪的频谱测量中&#xff0c;有两个参数设置用得比较多&…

机器视觉工程师越学习越谦虚-庆幸自己始终保持清醒

目录 ​这么多年的职场生涯&#xff0c;不断的学习&#xff0c;不断的进取&#xff0c;不断追求新的梦想。一直学习&#xff0c;越学习&#xff0c;越感觉自己的不足&#xff0c;自我感觉越无知&#xff0c;越谦虚。所以孔子讲“不耻下问”、“三人行必有我师”&#xff0c;像释…

芯片学习记录MP2144

MP2144 芯片介绍 MP2144是一款具有内部功率MOSFET的单片降压开关模式转换器。它可以从2.5V到-5.5V的输入电压实现高达2A的连续输出电流&#xff0c;具有出色的负载和线路调节。输出电压可以调节到低至0.6V。 恒定导通时间控制方案提供快速瞬态响应并简化环路稳定。故障状态保…

__main__文件学习测试如下

参考博客 https://www.jb51.net/article/251567.htm test01.py # https://www.jb51.net/article/251567.htmdef step():print(__name__)print("step1 买菜""step2 洗菜""step3 切菜""step4 炒菜")if __name__ __main__:print(准备制…

【统计学概念】初学者指南:了解置信区间

一、说明 什么是置信区间&#xff1f;如何将概率转化成信心度&#xff1f;信心度如何去工作&#xff1f;这些初步的统计概念需要明晰&#xff0c;然后才能应用统计模型&#xff0c;然后是贝叶斯推理&#xff0c;我们将逐步深入这些概念。 二、总体与样本个体统计 总体是研究人…

自定义Docker镜像--Jupyterlab

概述 自定义Jupyterlab镜像&#xff0c;为deployment做准备 步骤 下载基础镜像&#xff1a;centos:7.9.2009 docker search centos:7.9.2009 docker pull centos:7.9.2009 启动容器 部署应用 # 启动容器 docker run -it --name test centos:7.9.2009 bash# 在容器内部署…

windows 10LTSC安装微软应用商店(理论上适用于所有windows10)

LTSC-Add-MicrosoftStore-2019.zip官方版下载丨最新版下载丨绿色版下载丨APP下载-123云盘123云盘为您提供LTSC-Add-MicrosoftStore-2019.zip最新版正式版官方版绿色版下载,LTSC-Add-MicrosoftStore-2019.zip安卓版手机版apk免费下载安装到手机,支持电脑端一键快捷安装https://w…

习题2.17

很简单的一个提 代码如下 (defn last-pair[a](if (empty? (rest a))(first a)(last-pair (rest a) ))) 获取列表最后一个元素&#xff0c;递归的办法如上。

WLAN 无线案例(AC配置模板)

实验说明&#xff1a; 无线用户VLAN 30 192.168.30.0/24 AP和AC用VLAN 20 192.168.20.0/24 有线网段 VLAN 10 192.168.10.0/24 步骤一&#xff1a;全网互通 sw1&#xff1a; sysname sw1 # vlan batch 10 20 30 # dhcp enable # ip pool 20 gateway-list 192.168.20.1…

PHP基础语法(上)

目录 前言 一、基础语法 1.1 标记 1.2 输出语句 1.2.1 echo 1.2.2 print 1.3 注释 1.3.1 单行注释 1.3.2 多行注释 1.4 标识符 1.5 关键字 二、数据与运算 2.1 常量 2.1.1 常量的定义和使用 2.1.2 预定义常量 2.2 变量 2.2.1 变量的赋值 2.2.2 超全局变量 2.3 数据类型 2.3.1 …

Python 中的 DNS 查找

本文将讨论 DNS 和 DNS 查找的概念。 之后&#xff0c;我们讨论使用 Python 进行 DNS 查找的方法。 什么是 DNS DNS&#xff08;域名系统&#xff09;将域名转换为公共IP地址。 DNS 服务器将任何网站的域名转换为该网站主机服务器的公共 IP。 DNS查询 DNS 查找是一个过程&…

微信小程序 uniapp+vue线上洗衣店业务管理系统演89iu2

本课题意在设计一种系统的、基于用户体验的线上洗衣服务模式&#xff0c;具有如下的研究意义: (1)为用户提供更简单、便捷的洗衣服务模式; (2)为智能柜的盈利模式提供了新的方向; (3)通过线上系统、智能柜与洗衣工厂结合的方式&#xff0c;为洗衣企业构建了一套节 省人力成本的…

X86_64 栈和函数调用

引言 大家都知道函数调用是通过栈来实现的&#xff0c;而且知道在栈中存放着该函数的局部变量。但是对于栈的实现细节可能不一定清楚。本文将介绍一下在 x86 平台下函数栈是如何实现的。 1、x86-64 汇编 Intel 系列处理器通常称为x86&#xff0c;目前常用的笔记本或台式机都是…

常见场景面试题:BitMap、布隆过滤器

typora-copy-images-to: imgs位图 BitMap BitMap 到底用于解决什么问题&#xff1f; BitMap 常常用于解决一些数据量比较大的问题&#xff0c;比如说对于1千万个整数&#xff0c;整数的范围在 1~100000000&#xff0c;对于一个整数 x &#xff0c;我们怎么知道在不在这1千万个整…

基于springboot实现医院急诊平台系统项目【项目源码】计算机毕业设计

基于springboot实现医院急诊平台系统演示 Spring Boot框架 Spring Boot是Pivotal团队的一个新框架&#xff0c;旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法&#xff0c;无需开发人员定义样板配置。通过这种方式&#xff0c;Spring Boot旨在成为蓬勃发…

为什么直接用int转换 字符串内为小数类型的变量,会报错?直接转换失败?如何解决?

见图思考&#xff1a;为什么直接用int转换 字符串内为小数类型的变量&#xff0c;会报错&#xff1f;&#xff1f;&#xff1f;直接转换失败&#xff1f;&#xff1f;&#xff1f; 报错的意思就是&#xff1a;值异常&#xff0c;因为小数类型的字符串 ‘10.88’&#xff0c;不…

深度学习实战57-pytorch框架搭建LSTM+CNN模型与实现时间序列的预测过程

大家好,我是微学AI,今天给大家介绍一下深度学习实战57-pytorch框架搭建LSTM+CNN模型与实现时间序列的预测过程, 随着科技的进步,我们越来越依赖数据来理解世界,预测未来。特别是在金融、气候研究、交通管理等领域,时间序列预测已经成为了重要的工具。本文将介绍如何使用L…

Apifox 学习笔记 - 前置操作之:自定义变量给请求参数中使用

Apifox 学习笔记 - 前置操作之&#xff1a;动态更新请求体中的时间戳 1. 在前置操作中添加一个&#xff1a;自定义脚本或公共脚本2. 定义我们所需的环境变量。3. 在请求参数中使用【时间戳】4. 检验5. 示例自定义变量mock 参考资料 1. 在前置操作中添加一个&#xff1a;自定义脚…

如何下载GitHub上的代码

新建好要存储的文件夹 右键选择Git Bash Here ls是查看当前文件夹下的文件&#xff0c;可以忽略 git clone 地址 地址在这 直接点复制&#xff0c;粘贴的时候没办法粘贴 可以发现复制即为&#xff1a;CtrlIns&#xff1b;粘贴即为&#xff1a;ShiftIns 于是我们用ShiftIns…