目錄
1、前言
2、STM32 F1、F4、L1系列内部FLASH分區及大小
1、STM32F1系列
2、STM32F4系列
3、STM32L1系列
3、STM32 F1、F4、L1系列内部FLASH程式設計時間
1、STM32F1系列
2、STM32F4系列
3、STM32L1系列
1、前言
單片機内部的FLASH除了存儲固件以外,經常将其分成多個區域,用來存儲一些參數或存儲OTA更新的待更新的固件,這時就會涉及到單片機内部FLASH的程式設計和擦除操作,STM32不同系列的單片機内部FLASH特性和扇區大小都不太一樣,如果不注意這些細節,那就等着爬坑吧
1、FLASH的分區以及扇區大小
FLASH擦除是按照扇區擦的,是以這個很重要,在工程中全局搜尋 FLASH_PAGE_SIZE 宏就可以檢視該晶片的頁(扇區)大小,改宏在 stm32xxx_hal_flash.h中有定義
2、FLASH擦拭後的狀态
F1和F4系列的晶片FLASH在擦除後會是0xFFFFFFFF,而L1系列的晶片FLASH在擦除後是0x00000000!!!!!
3、FLASH的程式設計速度
L1晶片内部FLASH程式設計速度比F1慢50倍!!!是以在使用L1晶片寫入資料時相對于F1慢是正常的
2、STM32 F1、F4、L1系列内部FLASH分區及大小
1、STM32F1系列
對于F1系列的晶片大容量産品的FLASH主存儲器每頁大小為2K,如【下圖】,而中容量和小容量的産品每頁大小隻有1K

2、STM32F4系列
分為2個Bank,每個Bank分為12個扇區,前4個扇區為16KB大小,第五個扇區是64KB大小,剩下的7個扇區都是128K大小
3、STM32L1系列
3、STM32 F1、F4、L1系列内部FLASH程式設計時間
資訊參考對應晶片的資料手冊的 Electrical characteristics 章節
1、STM32F1系列
可以看出F1系列内部FLASH頁擦除時間最大為40ms,半字寫入的時間為52.2us,比如按字寫入1024位元組資料,需要26.8ms,還是比較快的
2、STM32F4系列
可以看出F4系列内部不同扇區擦除時間也不一樣的,字寫入的時間為16us,比如按字寫入1024位元組資料,隻需要4ms,非常快
3、STM32L1系列
可以看出L1系列内部FLASH頁擦除和程式設計的時間都是3.28ms,比如按字寫入1024位元組資料,需要840ms,非常慢;但是擦除是
比較快的