在使用stm32自帶的flash保存數據時候,如下特點必須知道:
1、必須是先擦除一個扇區,才能寫入
2、讀數據沒有限制
3、寫數據必須是2字節,同時寫入地址以一定要考慮字節對齊,
4、一般都是在最後幾頁進行數據保存的,確保數據量不超過flash的的大小,比如f103大容量是2k字節,其實一個扇區只能寫入1k數量的2字節的數據。
5、有些芯片的扇區大小是不相等的,那麼驅動就要自己根據需要重新寫,難度不大。參考線程的代碼,修改一下,驗證即可。
網上是如下的解釋:
先擦除後寫入的原因是爲了工業上製作方便,即物理實現方便
flash存儲器有個特點,就是隻能寫0,不能寫1。所以如果原來的地址有數據了,意味着有一些位爲0,這些位就相當於無效了。所以必須寫之前確保他們都爲1,只有擦除纔可以。另外每次擦除都必須擦除一個4K(隨芯片大小決定)大小的扇區,這是flash的特性所決定的。