STM32讀寫TXT時追加資料的方法

2021-08-03 08:46:08 字數 610 閱讀 3974

追加資料的方法,最主要的是使用f_lseek函式,但使用此函式時,我還是碰到不少的問題,現將自己在除錯中碰到的事項分享給大家:

1.為了追加資料,必須獲取原檔案的長度,可用f_size函式,如下**:

res = f_open(&fsrc, (const tchar *)datafile, fa_open_existing | fa_read);

filesize = f_size(&fsrc);  

2.為了寫資料,必須以寫的方式再開啟一次檔案

res=f_open(&fsrc,"0.txt", fa_create_always | fa_write);

3.偏移指標,需要注意的是,空的txt,用f_size也會產生長度值,如果把這個偏移量也加入的話,txt開頭就會出現亂碼,為此需要判斷是否是空件

if(filesize>50)res=f_lseek(&fsrc,filesize); 

經過以上處理後,就可以直接使用f_write寫函式了,在關閉檔案前,可以重複使用寫函式,而不必考慮指標偏移,如以下**

res = f_write(&fsrc, tfdata,26,&bw);

res = f_write(&fsrc, tfdata,26,&bw);

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讀寫float資料到Flash

flash status flash programword uint32 t address,uint32 t data static float f32writedata 1.23 static float f32readdata 0.0 定義乙個指標指向待寫入float資料 unsigned ...