天天看點

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

目錄

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

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

2、STM32F4系列

分為2個Bank,每個Bank分為12個扇區,前4個扇區為16KB大小,第五個扇區是64KB大小,剩下的7個扇區都是128K大小

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

3、STM32L1系列

3、STM32 F1、F4、L1系列内部FLASH程式設計時間

資訊參考對應晶片的資料手冊的 Electrical characteristics 章節

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

1、STM32F1系列

可以看出F1系列内部FLASH頁擦除時間最大為40ms,半字寫入的時間為52.2us,比如按字寫入1024位元組資料,需要26.8ms,還是比較快的

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

2、STM32F4系列

可以看出F4系列内部不同扇區擦除時間也不一樣的,字寫入的時間為16us,比如按字寫入1024位元組資料,隻需要4ms,非常快

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

3、STM32L1系列

可以看出L1系列内部FLASH頁擦除和程式設計的時間都是3.28ms,比如按字寫入1024位元組資料,需要840ms,非常慢;但是擦除是

比較快的

STM32單片機内部FLASH使用注意事項1、前言2、STM32 F1、F4、L1系列内部FLASH分區及大小3、STM32 F1、F4、L1系列内部FLASH程式設計時間

繼續閱讀