今天使用STM32的FLASH進行保存數據,實現掉電保存的功能。
掉電保存:使用FLASH存儲時,在每一次數據刷新后,進行一次存儲即可。
PS:重新下載時,會刷新保存的數據。
FLASH編程思路:
寫入:先執(zhí)行擦除數據(頁擦除||全片擦除),再進行寫入操作
寫入范圍:0x08000000 +程序大小 < 寫入地址 + 寫入字節(jié) <= flash大?。ǜ鶕酒臄祿謨钥梢圆榭矗?/p>
flash寫入過程:
1,讀FLASH_CR的LOCK
2,FLASH_SR的BSY位,是否有其他編程正在操作
3,設置FLASH_CR的PG位為1
4,指定的地址寫入要編程的半字
5,等待BSY位變?yōu)?
6,讀出寫入的地址并驗證數據
flash頁擦除過程
1,讀FLASH_CR的LOCK
2,檢查FLASH_SR的BSY位,是否有其他編程正在操作
3,置FLASH_CR的PER = 1;
4,用FLASH_AR選擇要擦除的頁
5,置FLASH_CR的STRT = 1
5, 等待BSY位變?yōu)?
6,讀出驗證擦除頁的數據
附上程序源碼:
鏈接:http://pan.baidu.com/s/1eSDu7Fs 密碼:ksf0