基于stm32f103zet6的FAT16文件系統(tǒng)學(xué)習(xí)4
本博文所用到的代碼:http://download.csdn.net/detail/king_bingge/5739167
好幾天沒有寫博客了,這幾天都在忙挑戰(zhàn)杯的事情,由于某些不和諧因素,昨天才開始準(zhǔn)備今天的挑戰(zhàn)杯答辯,雖然不知道結(jié)果是怎樣的,但是個人感覺創(chuàng)新點還是有的,就是主評委老師拽著我們這個消費對象來說事,過去了就不再想了,也不知道能不能進(jìn)入省賽,但是學(xué)習(xí)還是要繼續(xù)的,今天總結(jié)的這個實驗是實現(xiàn)從SD卡里面讀bmp圖片,bin圖片,同時在將我制作的字庫存放在SD卡中,從里面讀取所需要的漢字,雖然之前早就實現(xiàn)了bmp圖片讀取和字庫的讀取,但是一直困擾我的就是bin格式的圖片讀取,今天下午花了些時間終于弄出來的,刷圖是比bmp塊了,但是沒快多少,也就快五分之一的樣子!!不過也算是知道了怎么讀取bin文件的內(nèi)容吧,還是有收獲的。
好的,實驗開始..
預(yù)備知識就是知道我們的漢字顯示原理,區(qū)位碼的關(guān)系,還有bmp圖片的顯示原理。這部分知識我也看了幾個小時,現(xiàn)在把一些需要注意的地方總結(jié)一下
一、關(guān)于漢字GBK碼顯示
1、漢字在各種文件里面的存儲不是以點陣數(shù)據(jù)的形式存儲的(否則那占用的空間就太大了),而是以內(nèi)碼的形式存儲的,就是GB2312/GBK/BIG5等這幾種的一種,每個漢字對應(yīng)著一個內(nèi)碼,在知道了內(nèi)碼之后再去字庫里面查找這個漢字的點陣數(shù)據(jù),然后在液晶上顯示出來。這個過程我們是看不到,但是計算機是要去執(zhí)行的。
2、stm32顯示漢字流程:漢字內(nèi)碼(GBK/GB2312) ---->查找點陣庫 -----> 解析 ------- >顯示
那么關(guān)于漢字內(nèi)碼的知識,我想這不應(yīng)該是我們討論的內(nèi)容,網(wǎng)上一大把,我推薦一個介紹比較易懂的博文,是轉(zhuǎn)載的,大家可以參考這看一看
http://img.21ic.com/21ic_pic/danpianji/你you.bmp");
LCD_ClearScreen(BLACK);
Lcd_show_bin(0,0,"/你you.bin");
LCD_ClearScreen(RED);
LCD_Str_CH(20,300,"從存儲卡讀取漢字的實驗",0,BLUE);
while(1);
}
主程序就是幾個刷屏函數(shù),然后先說讀取字庫這個函數(shù)吧
4、代碼如下
voidLCD_Str_CH(u16x,u16y,constu8*str,u16Color,u16bkColor)
{
while(*str!='