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

工程获取

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

相关推荐
somi710 小时前
ARM-08-I.MX6U UART 串口
arm开发·单片机·嵌入式硬件·自用
mcupro10 小时前
TQTT_KU5P开发板教程---在Windows下XCKU5P+AD9361测试
嵌入式硬件·fpga开发·模块测试
西洼工作室10 小时前
React TabBar切换与高亮实现
前端·javascript·react.js
wuhen_n10 小时前
Tool Schema 设计模式详解
前端·javascript·ai编程
wuhen_n10 小时前
排列算法完全指南 - 从全排列到N皇后,一套模板搞定所有排列问题
前端·javascript·算法
@大迁世界10 小时前
15.React 中的 Fragment 是什么?它出现的动机是什么?
前端·javascript·react.js·前端框架·ecmascript
青桔柠薯片10 小时前
IMX6ULL 时钟、定时器与中断系统:从晶体振荡器到GIC的硬件机制分析
嵌入式硬件·imx6ull
Embrace92410 小时前
钉钉工作台内嵌应用=》调用钉钉对话框
前端·javascript·钉钉
周不凢10 小时前
elementui 表格行选择:通过 toggleRowSelection 方法控制表格行的选中状态
前端·javascript·elementui
辰哥单片机设计10 小时前
STM32智能家用垃圾桶(升级版)
stm32·单片机·嵌入式硬件