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