STM32讀寫float資料到Flash

2021-10-12 06:27:06 字數 1272 閱讀 7119

flash_status flash_programword(uint32_t address, uint32_t data)

static

float f32writedata =

1.23

;static

float f32readdata =

0.0;

//定義乙個指標指向待寫入float資料

unsigned

int*u32writedata =

(unsigned

int*

)&f32writedata;

//把float資料手動轉成二進位制形式

print

(*u32writedata)

;// *u32writedata = 0x3f9d70a4 這是float資料1.23用二進位制表示形式

print

(u32writedata)

;// u32writedata = 0x20000068 該記憶體由系統分配,每次可能不一樣。該值的位址拿出來做比較,無其他用途

print

(&f32writedata)

;// &f32writedata= 0x20000068 不要去儲存變數位址,這樣做沒任何意義

flash_programword

(0x0801f800

,*u32writedata)

;//從flash讀出資料

unsigned

int u32readdata =

flash_readword

(0x0801f800);

print

(u32readdata)

;//u32readdata = 0x3f9d70a4

f32readdata =

(float*)

&u32readdata;

//用float型別解析二進位制,則是我們所期望的值

print

(f32readdata)

;//f32readdata = 1.23 等於f32writedata

union test

test;

test.a=

1.23

;flash_programword

(address,test.b)

;//這樣進行儲存

print

(test.a)

;//a = 1.23

stm32 讀寫內部Flash

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

STM32 讀寫內部Flash

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

STM32學習筆記 FLASH讀寫

stm32的flash除了可以燒寫如程式外,還可以供給使用者做儲存器,儲存引數用,但是要注意的是,flsah的擦寫次數是有限制的,10萬次。stm32f1系列微控制器核心是cortext m3系列的,其儲存器的對映是按照cortext m3的標準設計的,如下圖。從上圖可看出最下main的512m是分...