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);

工程获取

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

相关推荐
wuxia211816 小时前
微信小程序单击元素切换元素的显示和隐藏
javascript·微信小程序·setdata
一起学开源16 小时前
一文读懂 ReAct 范式:让 AI Agent 真正学会“思考+行动“
java·javascript·react.js·ecmascript·react·alibaba·智能体开发
笨笨没好名字17 小时前
怎么看懂51单片机电路图与功能实现的C语言编写(2-7入门篇)
c语言·嵌入式硬件·51单片机
游九尘18 小时前
JavaScript 实现三段式版本号对比函数(app升级用)
javascript·uni-app
zhiSiBuYu051718 小时前
Claude-Code 新手极速上手指南
javascript·node.js
罗超驿19 小时前
18.Web API 实战:元素与表单属性的获取和修改
开发语言·前端·javascript
山河已无恙19 小时前
BPF-eBPF 开发路线二:libbpf、CO-RE 与 libbpf-bootstrap认知
javascript·bootstrap·php
ZengLiangYi20 小时前
React Query + REST API 最佳实践
javascript·后端·react.js
ZengLiangYi20 小时前
Fastify 加 Electron:把 Web 服务嵌进桌面应用
前端·javascript·后端
胡萝卜术21 小时前
从零搭建生成式AI项目:OpenAI + Node.js 环境配置与密钥安全实践
前端·javascript·面试