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

工程获取

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

相关推荐
yqcoder3 分钟前
Vue2 和 Vue3 中祖先组件和子孙组件的通信方法和区别
前端·javascript·vue.js
国服第二切图仔7 分钟前
Electron for 鸿蒙PC项目实战案例之简单统计组件
javascript·electron·harmonyos
北极糊的狐14 分钟前
使用 vue-awesome-swiper 实现轮播图(Vue3实现教程)
前端·javascript·vue.js
W.Y.B.G15 分钟前
vue3项目中集成高德地图使用示例
前端·javascript·网络
YAY_tyy23 分钟前
基于矩形区域的相机自动定位与飞行控制实现
前端·javascript·3d·cesium
KWTXX25 分钟前
用逻辑分析仪验证 ,关闭端口时钟则单片机无法正常工作
单片机·嵌入式硬件
随风一样自由29 分钟前
React中实现iframe嵌套登录页面:跨域与状态同步解决方案探讨
javascript·react.js·ecmascript
Chicheng_MA30 分钟前
OpenWrt WebUI 交互架构深度解析
javascript·lua·openwrt
pale_moonlight31 分钟前
九、Spark基础环境实战(下)
大数据·javascript·spark
柔情的菜刀31 分钟前
基于 RK3588 的图像拼接系统-图像采集
linux·嵌入式硬件