STM32 片上Flash 操作

2022-04-11 18:38:39 字數 1611 閱讀 8207

之前iap時候記錄過一些,今天對特定地方寫又加深了印象,寫與擦除都需要先unclock

1

//讀取指定位址的半字(16位資料)2//

faddr:讀位址(此位址必須為2的倍數!!)3//

返回值:對應資料.

4u16 stmflash_readhalfword(u32 faddr)

5

stmflash_readhalfword

1

//讀取指定位址的字(32位資料)2//

faddr:讀位址(此位址必須為2的倍數!!)3//

返回值:對應資料.

4u32 stmflash_readoneword(u32 faddr)

5

stmflash_readoneword

1

//從指定位址開始讀出指定長度的資料2//

readaddr:起始位址3//

pbuffer:資料指標4//

numtowrite:半字(16位)數

5void stmflash_read(u32 readaddr,u16 *pbuffer,u16 numtoread)

613 }

stmflash_read

1 /從指定位址開始讀出指定長度的資料2//

readaddr:起始位址3//

pbuffer:資料指標4//

numtowrite:字(32位)數

5void stmflash_read_word(u32 readaddr,u32 *pbuffer,u32 numtoread)

613 }

stmflash_read_word

1

//不檢查的寫入2//

writeaddr:起始位址3//

pbuffer:資料指標4//

numtowrite:半字(16位)數

5void stmflash_write_nocheck(u32 writeaddr,u16 *pbuffer,u16 numtowrite) 6

14 flash_lock();//

上鎖 15

16 }

stmflash_write_nocheck

1

//不檢查的寫入2//

writeaddr:起始位址3//

pbuffer:資料指標4//

numtowrite:半字(16位)數

5void stmflash_write_nocheck_oneword(u32 writeaddr,u32 *pbuffer,u16 numtowrite)

614 flash_lock();//

上鎖

15 }

stmflash_write_nocheck_oneword

1

flash_unlock();

2flash_erasepage(u32 address);

3 flash_lock();

erase one page

STM32關於操作內部FLASH整理

stm32的flash分為主儲存塊 資訊塊和快閃儲存器儲存器介面暫存器等 3 部分組成。主儲存塊用於儲存具體的程式 和使用者資料。起始位址0x08000000,b0和b1接gnd從這裡開始執行程式。資訊塊用於負責由stm32出廠時放置2kb的啟動程式 bootloader 和512b的使用者配置資訊...

STM32 連續操作flash

程式設計和擦除快閃儲存器 主儲存塊容量 小容量產品主儲存塊最大為4k 64 位,每個儲存塊劃分為32個 1k位元組的頁 見表 2 中容量產品主儲存塊最大為16k 64 位,每個儲存塊劃分為 128個 1k位元組的頁 見表 3 大容量產品主儲存塊最大為64k 64 位,每個儲存塊劃分為 256個 2k...

STM32內部Flash的操作函式

1.iap遠端更新機制說明 3.stm32內部flash的操作函式 stm32 操作內部flash的函式介面 include inflash.h include stm32f10x flash.h 功 能 不檢查的寫入內部flash param1 起始位址 param2 要寫入的資料指標 param...