STM32CUBEIDE(16)----內(nèi)部Flash讀寫
概述
本例程主要講解如何對(duì)芯片自帶Flash進(jìn)行讀寫,用芯片內(nèi)部Flash可以對(duì)一些需要斷電保存的數(shù)據(jù)進(jìn)行保存,無需加外部得存儲(chǔ)芯片,本例程采用的是STM32F103RBT6,128K大小的Flash。 最近在弄ST和GD的課程,需要GD樣片的可以加群申請(qǐng):6_15061293 。
視頻教學(xué)
https://www.bilibili.com/video/BV19d4y1Y7Px/

csdn課程
課程更加詳細(xì)。?https://download.csdn.net/course/detail/35611
硬件準(zhǔn)備
使用STM32CUBEMX生成例程,這里使用NUCLEO-F103RB開發(fā)板

?查看原理圖,PA2和PA3設(shè)置為開發(fā)板的串口。?

?配置串口。

?查看原理圖,PA8設(shè)置為PWM輸出管腳,PA0設(shè)置為定時(shí)器輸入捕獲管腳。?

配置時(shí)鐘樹
配置時(shí)鐘為64M。?

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

低密度

中密度

高密度

?對(duì)于STM32F103RB,FLASH大小為128KB,固為中密度的Flash。
變量定義
如果要對(duì)FLASH進(jìn)行寫入數(shù)據(jù),需要執(zhí)行以下四步:
解鎖FLASH
擦除FLASH
寫入FLASH
鎖住FLASH
擦除只能是按頁或者整塊擦除。 STM32F103RBT6的Flash容量是128KB,所以只有128頁,每頁1KB。 我們可以寫入到頁127中,即0x0801FC00-0x0801FFFF中。 由于單片機(jī)是32位,故連續(xù)寫入多個(gè)uint32_t的數(shù)據(jù)時(shí),地址應(yīng)該依次增加4。
主程序
演示效果

?通過STM32CUBEIDE查看地址也可以看到,值正確寫入。

最后
以上的代碼會(huì)在Q群里分享。QQ群:615061293。 或者關(guān)注微信公眾號(hào)『記貼』,持續(xù)更新文章和學(xué)習(xí)資料,可加作者的微信交流學(xué)習(xí)!?
