STM32CUBEMX開發(fā)GD32F303(17)----內(nèi)部Flash讀寫
概述
本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發(fā),同時通過開發(fā)板內(nèi)進行驗證。 本例程主要講解如何對芯片自帶Flash進行讀寫,用芯片內(nèi)部Flash可以對一些需要斷電保存的數(shù)據(jù)進行保存,無需加外部得存儲芯片,本例程采用的是STM32F103ZET6進行移植,512K大小的Flash。 需要樣片的可以加Qun申請:615061293。
csdn課程
課程更加詳細。?https://download.csdn.net/course/detail/37152
樣品申請
https://www.wjx.top/vm/mB2IKus.aspx
視頻教學
https://www.bilibili.com/video/BV1aM411T7Jh/

生成例程
這里準備了自己繪制的開發(fā)板進行驗證。?

配置時鐘樹,配置時鐘為64M。?

?查看原理圖,PA9和PA10設置為開發(fā)板的串口。?

配置串口。?

串口重定向
在main.c中,添加頭文件,若不添加會出現(xiàn) identifier "FILE" is undefined報錯。
函數(shù)聲明和串口重定向:
FLASH定義
對于STM32F103,有低、鐘、高密度的FLASH類型。?

低密度

中密度

高密度

對于STM32F103ZE,FLASH大小為512KB,固為高密度的Flash。
變量定義
如果要對FLASH進行寫入數(shù)據(jù),需要執(zhí)行以下四步:
解鎖FLASH
擦除FLASH
寫入FLASH
鎖住FLASH
擦除只能是按頁或者整塊擦除。 STM32F103ZET6和GD32F403ZET6的Flash容量是512KB,所以只有255頁,每頁2KB。 我們可以寫入到頁255中,即0x0807F800-0x0807FFFF中。 由于單片機是32位,故連續(xù)寫入多個uint32_t的數(shù)據(jù)時,地址應該依次增加4。
主程序
演示效果
可以看見,對于高容量,頁的大小位2k,故寫入addr1時候,addr的數(shù)據(jù)就被擦除了。?
