ucgui漢字庫(kù)存放到外部的flash(控件可用)及寫外部FLASH軟件
下面是找到的相關(guān)鏈接:
本文引用地址:http://www.biyoush.com/article/201611/322358.htmhttp://blog.chinaunix.net/uid-361890-id-2953183.html
http://www.openedv.com/posts/list/9736.htm;jsessionid=6B5FA51FE6BBC280B752D9B6
這里我主要用的是crazytyt文章的方法,在他的基礎(chǔ)上進(jìn)行一定的改進(jìn)。解決控件用漢字居中等問(wèn)題。
其實(shí)我的方法很簡(jiǎn)單,增加了每個(gè)字的元素一些標(biāo)量(xSize, ySize, 字節(jié)等)就可以了。
因?yàn)閡cGUI中對(duì)文字的高度寬度的取值不光只有取模時(shí)用到,在計(jì)算居中及文本長(zhǎng)度時(shí)也同樣被用到。這就是為什么,修改GUIPROP_DispChar(c)函數(shù)后控件文本中的字感覺(jué)變的很長(zhǎng)!
下面是我的修改方法:
把{ 16, 16, 2, (void GUI_FLASH *)GUI_FontHZ16_Flash_BaseAddr},在它的下面復(fù)制94次就可以了。
OK到這里,問(wèn)題就解決了。哈哈,是不是感覺(jué)也太簡(jiǎn)單了~ 事實(shí)確實(shí)是這樣子。主要是站在巨人的肩膀上進(jìn)行改進(jìn)的。
還有個(gè)人認(rèn)為ASCII碼不算很多,就沒(méi)有必要放到外部FLASH了。所以我對(duì)其保留。
下面是我的文件:
http://pan.baidu.com/share/link?shareid=157310&uk=118334538
效果:
補(bǔ)充:
在把自定義字體設(shè)定為默認(rèn)字體時(shí),控件沒(méi)有對(duì)基默認(rèn)指定。要手動(dòng)去指定,在程序開(kāi)始的地方加入如下代碼:
1TEXT_SetDefaultFont(GUI_DEFAULT_FONT);2BUTTON_SetDefaultFont(GUI_DEFAULT_FONT);3EDIT_SetDefaultFont(GUI_DEFAULT_FONT);4LISTVIEW_SetDefaultFont(GUI_DEFAULT_FONT);5FRAMEWIN_SetDefaultFont(GUI_DEFAULT_FONT);
省略了一定控件, 這里根據(jù)自己的需要去添加。
下面奉上4個(gè)字體文件:
http://pan.baidu.com/share/link?shareid=157719&uk=118334538
樣本:
空的時(shí)候?qū)懥艘粋€(gè)小軟件,用來(lái)燒寫字庫(kù)到外部FLASH中,如果你也是用的stm32的話就也可以用上,不過(guò)要稍做改動(dòng)。當(dāng)然是FLASH驅(qū)動(dòng)那部分。改動(dòng)如下:
改了這三個(gè)地方就可以了。
上位機(jī)是用C#寫的,與下位機(jī)的接口是rs232, 采用Modbus協(xié)議, 115200波特率。
下面是軟件截圖,附件中包括源碼。
附件如下:
包括上下位機(jī)源碼。
http://pan.baidu.com/share/link?shareid=157523&uk=118334538
這些文件都在下面的附件中。 整個(gè)的移植過(guò)程,可以參考“洋洋kan世界”的文章。這里就不細(xì)說(shuō)了。 部分的改進(jìn),在其文章中也有說(shuō)明。可以用以下附件直接替換GUI源文件對(duì)應(yīng)的文件。
在上文的下載字庫(kù)工具可能過(guò)于繁瑣,在后續(xù)文章中會(huì)進(jìn)行改進(jìn),使用YMODEM高效的文件傳輸協(xié)議傳送。
評(píng)論