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

工程获取

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

相关推荐
156082072191 分钟前
飞腾D2000接入外部时钟HYM8563芯片调试
驱动开发·嵌入式硬件·mcu
殷忆枫38 分钟前
基于STM32+OV2640+ESP8266的无线图像采集系统设计与实现
stm32·单片机·嵌入式硬件
小罗水1 小时前
第17章 后台管理端与演示支持
javascript·vue.js·ecmascript
万少2 小时前
DeepSeek-V4-Flash 正式版上线了,但这 3 个坑我帮你提前踩了
前端·javascript·后端
宁风NF3 小时前
JavaScript:网络请求与前端通信
开发语言·前端·javascript·网络·学习·ecmascript
猫猫不是喵喵.3 小时前
Vue3 中 computed 计算属性与 watch、watchEffect 监听
前端·javascript·vue.js
猫猫不是喵喵.4 小时前
Vue2 的 Vuex 状态管理与 Vue3 的 Pinia 状态管理
前端·javascript·vue.js
qq_283720055 小时前
STM32F103 GPIO 端口配置寄存器 CRL / CRH 详解
stm32·单片机·嵌入式硬件
看昭奚恤哭5 小时前
Flutter 布局核心思想
开发语言·javascript·flutter
振南的单片机世界5 小时前
NVIC:Cortex-M内核的“中断CPU”
stm32·单片机·嵌入式硬件