嵌入式-FLASH操作
FLASH 操作
STM32F4开发指南寄存器版本_V1.2.pdf
详解
What is Flash Memory? | Definition from TechTarget
FLASH为什么写之前为什么要先擦除
- FLASH是广义EEPROM EEPROM(Electrically Erasable Programmable Read-Only Memory)
- Flash 的编程原理都是只能将 1 写为 0,而不能将 0 写为 1。所以在 Flash 编程之前,必须将对应的块擦除,而擦除的过程就是把所有位都写为 1 的过程,块内的所有字节变为 0xFF
- 初识flash芯片—-写之前为什么要先擦除_flash擦除原理-CSDN博客
写入
1 2 3 4 5 6 7 8 9
| float calibrationData[3];
FLASH_Unlock(); \\写 0X45670123 到 FLASH_KEYR2, 写 0XCDEF89AB 到 FLASH_KEYR OSTimeDlyHMSM(0,0,0,50,OS_OPT_TIME_PERIODIC,&err); \\延时 FLASH_EraseSector(FLASH_Sector_3,VoltageRange_3);
FLASH_Lock();
STMFLASH_Write(Correct_SAVE_ADDR,(int32_t*)&calibrationData,3); \\写数据
|
读取
1 2 3 4 5 6 7 8 9 10
| float calibrationData[3];
STMFLASH_Read(Correct_SAVE_ADDR,(int32_t*)&(calibrationData),3);
data=*(float*)addr;
float (*calibrationData)[3]=(float(*)[3])(Quotient_SAVE_ADDR);
|