STM32製作FLASH字型檔

2021-10-09 05:13:11 字數 1968 閱讀 3619

//w25q128! -> 總空間:16m

#define spi_font_start 12

//從12m開始寫入,其餘是檔案系統

#define font16x16_spi_addr (spi_font_start*1024/16 * 4096)

//16x16字型檔

#define font16x16_spi_size 282752

//使用空間byte

#define font16x16_spi_total_size (280*1024)

//占用空間

#define font24x24_spi_addr (font16x16_spi_addr+font16x16_spi_total_size)

#define font24x24_spi_size 636192

//使用空間byte

#define font24x24_spi_total_size (624*1024)

//占用空間

#define font32x32_spi_addr (font24x24_spi_addr+font24x24_spi_total_size)

#define font32x32_spi_size 1131008

//使用空間byte

#define font32x32_spi_total_size (1108*1024)

//占用空間

特別注意一點,檔案空間和占用空間不一樣,和window一樣,乙個扇區4kb,哪怕超了1bit也要占用乙個扇區。

這裡根據自己需要定義要存的位置。但是自己要計算好空間夠不夠。

**由於是我自己寫的,所以我從簡,我也挺煩一大串複雜冗餘的**。

u8 exchangebuf[

4096

]__attribute__((

at(0xc0000000))

);fresult f_res;

fil fil;

uint spi_btr;

//ph: 16x16字型檔檔案路徑 絕對路徑!

void

update_spi_font16x16

(const tchar* ph)

}else

} f_res =

f_read

(&fil,exchangebuf,data_reserve,

&spi_btr)

;//剩餘資料寫入

if(f_res == fr_ok)

else

}else

}

我從sdram開了片4kb空間給緩衝區(因為flash乙個扇區4kb)

什麼?要sdram?

慢著!別走這是我圖快。。不用sdram完全可以的。

你只要從stm32記憶體裡分配256個也可以。只是需要多寫幾次罷了,記得位址每次要偏移256b!但是有sram/sdram的朋友就不會覺得那麼麻煩了(也就是**麻煩)。。

這是16x16的字型檔,檔案比較小。對於24x24、32x32一樣的**,把巨集改一下。

對於沒接觸過字型檔檔案的的確很懵,我也是總覺得那玩意前面有個檔案頭、資訊頭啥的,還要加偏移。。但是字型檔這玩意的確沒有,按gbk編碼定址就行了,這裡大概說一下,畢竟不是主題

u32 get_gbk_offset_addr

(const u16 hz)

這是按gb2312的編碼來的,0xa0就是ascii最後乙個碼,其他演算法沒去具體了解。按這個計算公式

你要呼叫?

get_gbk_offset_addr

('漢'

);

得到偏移位址代入spiflash字型檔基位址就可以顯示了

本人學習筆記,熱愛分享

《完》

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

原檔名 option.jpg 引用 rdp 讀出保護選擇位元組 讀出保護功能幫助使用者保護存在快閃儲存器中的軟體。該功能由設定資訊塊中的乙個選擇位元組啟用。寫入正確的數值 rdprt鍵 0x00a5 到這個選擇位元組後,快閃儲存器被開放允許讀出訪問。user 使用者選擇位元組 這個位元組用於配置下列...