简介和注意事项
-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);
工程获取
三连加关注后点击头像获取