2023版 STM32实战10 内部Flash读写

简介和注意事项

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

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

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

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

-5-读取不需要解锁

存储器分布

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

STM32F103C6T6(小容量)

STM32F103C8T6(中容量)

STM32F103ZET6(大容量)

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

c 复制代码
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);

工程获取

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

相关推荐
前端小D3 分钟前
作用域/闭包
前端·javascript
前端 贾公子4 分钟前
@uni-helper 社区:让 uni-app 拥抱 ESM 时代
开发语言·前端·javascript
真夜5 分钟前
又遇到生产与开发环境结果不一致问题。。。
前端·javascript·http
掘金安东尼6 分钟前
低代码工具很多,为什么 RollCode 更像一套「页面生产平台」
前端·javascript·面试
baozj6 分钟前
前端大文件上传的另一种提速思路
前端·javascript
poo6 分钟前
全局防抖方案的设计思路与实现:原型劫持的完整方案(零侵入)
javascript
进击的尘埃6 分钟前
Copilot 补全不听话?从 RAG 注入到采纳率量化,把 AI 补全调教成你的形状
javascript
不知名。。。。。。。。8 分钟前
仿muduo库实现高并发服务器-----Channel模块 和 Poller模块
开发语言·前端·javascript
014-code10 分钟前
Vue 中 data 为什么是函数而不是对象?
前端·javascript·vue.js
Never_Satisfied17 分钟前
在JavaScript / HTML中,判断指定的元素是否含有某个类
开发语言·javascript·html