您的位置 首页 资料

ucgui汉字库存放到外部的flash(控件可用)及写外部FLASH软件

最近项目中用到几种字体,stm32的内部flash以经入不敷出。没办法!只好找度娘及求助群里的高手,这里对Eric2013,洋洋kan世界等高手表示感

最近项目中用到几种字体,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

作用:

弥补:

在把自定义字体设定为默许字体时,控件没有对基默许指定。要手动去指定,在程序开端的当地参加如下代码:

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);

省掉了必定控件, 这儿依据自己的需求去增加。

下面奉上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三个文件,和追加一个GU%&&&&&%harPEx.c文件。上文中的四种字库也相应的做了必定的修正。

这些文件都在下面的附件中。 整个的移植进程,能够参阅“洋洋kan国际”的文章。这儿就不细说了。 部分的改善,在其文章中也有阐明。能够用以下附件直接替换GUI源文件对应的文件。

在上文的下载字库东西或许过于繁琐,在后续文章中会进行改善,运用YMODEM高效的文件传输协议传送。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/257336.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部