<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ucgui漢字庫(kù)存放到外部的flash(控件可用)及寫(xiě)外部FLASH軟件

          ucgui漢字庫(kù)存放到外部的flash(控件可用)及寫(xiě)外部FLASH軟件

          作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
          最近項(xiàng)目中用到幾種字體,stm32的內(nèi)部flash以經(jīng)入不敷出。沒(méi)辦法!只好找度娘及求助群里的高手,這里對(duì)Eric2013,洋洋kan世界等高手表示感謝。學(xué)習(xí)了他們的一些思想。

          下面是找到的相關(guān)鏈接:

          本文引用地址:http://www.ex-cimer.com/article/201611/322358.htm

          http://blog.chinaunix.net/uid-361890-id-2953183.html

          http://www.openedv.com/posts/list/9736.htm;jsessionid=6B5FA51FE6BBC280B752D9B63BA57895

          這里我主要用的是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)燒寫(xiě)字庫(kù)到外部FLASH中,如果你也是用的stm32的話就也可以用上,不過(guò)要稍做改動(dòng)。當(dāng)然是FLASH驅(qū)動(dòng)那部分。改動(dòng)如下:

          改了這三個(gè)地方就可以了。

          上位機(jī)是用C#寫(xiě)的,與下位機(jī)的接口是rs232, 采用Modbus協(xié)議, 115200波特率。

          下面是軟件截圖,附件中包括源碼。

          附件如下:

          包括上下位機(jī)源碼。

          http://pan.baidu.com/share/link?shareid=157523&uk=118334538

          2013.3.12補(bǔ)充

          用以上的操作方法, 在使用控件時(shí),多多少少,還是會(huì)有一些問(wèn)題。后來(lái)仔細(xì)的對(duì)“洋洋kan世界”的文章進(jìn)行了研究,用他的方法,可以更好的規(guī)避控件中中文的 自動(dòng)換行,光標(biāo)停留等問(wèn)題。MULTIEDIT中的應(yīng)用,可以說(shuō)完美的解決。

          總共需要修改GUI.h,GUI_UC_EncodeNone.c,GUIType.h三個(gè)文件,和追加一個(gè)GUICharPEx.c文件。上文中的四種字庫(kù)也相應(yīng)的做了一定的修改。

          這些文件都在下面的附件中。 整個(gè)的移植過(guò)程,可以參考“洋洋kan世界”的文章。這里就不細(xì)說(shuō)了。 部分的改進(jìn),在其文章中也有說(shuō)明。可以用以下附件直接替換GUI源文件對(duì)應(yīng)的文件。

          在上文的下載字庫(kù)工具可能過(guò)于繁瑣,在后續(xù)文章中會(huì)進(jìn)行改進(jìn),使用YMODEM高效的文件傳輸協(xié)議傳送。



          關(guān)鍵詞: ucgui漢字庫(kù)flashstm3

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();