ucgui漢字型檔存放到外部的flash(控制項可用)及寫外部FLASH小軟體

來源:互聯網
上載者:User

最近項目中用到幾種字型,stm32的內部flash以經入不敷出。沒辦法!只好找度娘及求助群裡的高手,這裡對Eric2013洋洋kan世界等高手錶示感謝。學習了他們的一些思想。

下面是找到的相關連結:

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

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

 

這裡我主要用的是crazytyt文章的方法,在他的基礎上進行一定的改進。解決控制項用漢字置中等問題。

其實我的方法很簡單,增加了每個字的元素一些標量(xSize, ySize, 位元組等)就可以了。

因為ucGUI中對文字的高度寬度的取值不光只有模數時用到,在計算置中及文本長度時也同樣被用到。這就是為什麼,修改GUIPROP_DispChar(c)函數後控制項文本中的字感覺變的很長!

 

下面是我的修改方法:

把{ 16, 16, 2, (void GUI_FLASH *)GUI_FontHZ16_Flash_BaseAddr},在它的下面複製94次就可以了。

OK到這裡,問題就解決了。哈哈,是不是感覺也太簡單了~ 事實確實是這樣子。主要是站在巨人的肩膀上進行改進的。

 

還有個人認為ASCII碼不算很多,就沒有必要放到外部FLASH了。所以我對其保留。

下面是我的檔案:

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

效果:

 

補充:

在把自訂字型設定為預設字型時,控制項沒有對基預設指定。要手動去指定,在程式開始的地方加入如下代碼:

1     TEXT_SetDefaultFont(GUI_DEFAULT_FONT);2     BUTTON_SetDefaultFont(GUI_DEFAULT_FONT);3     EDIT_SetDefaultFont(GUI_DEFAULT_FONT);4     LISTVIEW_SetDefaultFont(GUI_DEFAULT_FONT);5     FRAMEWIN_SetDefaultFont(GUI_DEFAULT_FONT);

省略了一定控制項, 這雷根據自己的需要去添加。

下面奉上4個字型檔:

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

樣本:

 

 

空的時候寫了一個小軟體,用來燒寫字型檔到外部FLASH,如果你也是用的stm32的話就也可以用上,不過要稍做改動。當然是FLASH驅動那部分。改動如下:

改了這三個地方就可以了。

上位機是用C#寫的,與下位機的介面是rs232, 採用Modbus協議, 115200傳輸速率。

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

附件如下:

包括上下位機源碼。

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

 

 2013.3.12  補充

   用以上的操作方法, 在使用控制項時,多多少少,還是會有一些問題。後來仔細的對“洋洋kan世界”的文章進行了研究,用他的方法,可以更好的規避控制項中中文的 自動換行,游標停留等問題。MULTIEDIT中的應用,可以說完美的解決。

 總共需要修改GUI.h, GUI_UC_EncodeNone.c, GUIType.h三個檔案,和追加一個GUICharPEx.c檔案。上文中的四種字型檔也相應的做了一定的修改。

這些檔案都在下面的附件中。 整個的移植過程,可以參考“洋洋kan世界”的文章。這裡就不細說了。 部分的改進,在其文章中也有說明。可以用以下附件直接替換GUI源檔案對應的檔案。

在上文的下載字型檔工具可能過於繁瑣,在後續文章中會進行改進,使用YMODEM高效的檔案傳輸通訊協定傳送。

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

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.