参考战舰的FLASH模拟EEPROM实验 |
比如, #define FLASHADDR_START 0x08006800 写: u32 Data = 0x20161109; FLASH_Unlock(); FLASH_ErasePage(FLASHADDR_START); FLASH_ProgramWord(FLASHADDR_START,Data); FLASH_Lock(); 读: u32 Data; Data = *(u32*)FLASHADDR_START; |
|
STM32程序一般放在Flash中,数据放在SRAM中!掉电一定会丢失的。不过STM32可以操作Flash,所以你也可以把数据放到Flash中。这样数据就不会丢失了
必须知道的stm32内部flash操作细节
1.stm32内部flash写操作只能是两个byte写入,不能一个byte一个byte的写
2.写之前需要擦除,擦除后数据均为FF
3.内部flash为512kb为大容量,小于512为小容量。在stm32的stm32f10x_flash.c里面FLASH_Status FLASH_ErasePage擦除页函数有区别擦2k还是擦1k,大容量擦2k,小容量擦1k
4.读可以只读一个字节,例如:*(uint8_t*)(Address)
5.我的代码中,擦除和写过程没有加延时函数,因为库函数里面已经有一个确保操作完成的函数。
6.擦写前先调用解锁函数。
STM32操作访问flash,包括写入数据到flash和从flash读取数据
https://blog.csdn.net/Ace_Shiyuan/article/details/78196648
标签:flash,FLASH,掉电,stm32,擦除,FLASHADDR,Data From: https://www.cnblogs.com/zhouyuqing1024/p/17896937.html