stm32 讀寫內部Flash

2021-07-01 21:37:18 字數 695 閱讀 9404

stm32的flash分為主儲存塊和資訊塊。主儲存塊用於儲存具體的程式**和使用者資料,資訊塊用於負責由stm32出廠是放置2kb的啟動程式(bootloader)和512b的使用者配置資訊區。主儲存塊是以頁為單位劃分的,一頁大小為1kb。範圍為從位址0x08000000開始的128kb內。

對flash 的寫入操作要 「先擦除後寫入」的原則;stm32的內建flash 程式設計操作都是以頁為單位寫入的,而寫入的操作必須要以16位半字寬度資料位單位,允許跨頁寫,寫入非16位資料時將導致stm32內部匯流排錯誤。

void testflash()

; u32 base=0x8000000+1024*254; //儲存自定義資料的起始位址

printf("start test flash\n");

flash_unlock();

flash_clearflag(flash_flag_eop|flash_flag_pgerr|flash_flag_wrprterr);

flash_erasepage(base);

while(count

< 5)

flash_lock();

count = 0;

printf("\r\n the five data is : \r\n");

while(count

< 5)

STM32 讀寫內部Flash

flash模組組織 儲存器被組織為程式儲存器模組,資料eeprom模組和資訊塊。程式儲存器塊分為4 kb的扇區,每個扇區都是進一步分成16頁,每頁256位元組。該操作用於擦除程式儲存器中的頁面 64個字 要做到這一點 解鎖flash pecr暫存器 1.將pekey1 0x89abcdef寫入程式設...

STM32 實現內部Flash的讀寫(HAL庫版)

flash 中文名字叫快閃儲存器,是一種長壽命的非易失性 斷電資料不丟失 的儲存器。可以對稱為塊的儲存器單元塊進行擦寫和再程式設計,在進行寫入操作之前必須先執行擦除。乙個nand flash由多個塊 block 組成,每個塊裡面又包含很多頁 page 每個頁對應乙個空閒區域 冗餘區域 spare a...

STM32之內部FLASH原理

不同型號的 stm32,其 flash 容量也有所不同,最小的只有 16k 位元組,最大的則達到了 1024k 位元組。市面上 stm32f1 開發板使用的晶元是 stm32f103系列,其 flash 容量一般為 512k 位元組,屬於大容量晶元。大容量產品的 flash 模組組織結構如圖 40....