LCRPN 发表于 2013-1-11 18:31:53

移植UCGUI的非等宽字体到51单片机,代码奉上

本帖最后由 LCRPN 于 2013-1-11 18:30 编辑

一直很喜欢UCGUI的字体,想把它用到51单片机上。可是整个UCGUI太大了,普通51单片机吃不消。于是前两天花了一晚上的时间单独移植了其字体。
现仅仅写了GUI_FONTTYPE_PROP类型的画字符的函数,其他的还没看。不过能用这种字体就够了,一共13种非等宽字体,很漂亮。
GUI_Font8_ASCII,   
GUI_Font10S_ASCII,
GUI_Font10_ASCII,
GUI_Font13_ASCII,
GUI_Font13B_ASCII,
GUI_Font13H_ASCII,
GUI_Font13HB_ASCII,
GUI_Font16_ASCII,
GUI_Font16B_ASCII,
GUI_Font24_ASCII,
GUI_Font24B_ASCII,
GUI_Font32_ASCII,
GUI_Font32B_ASCII,
有兴趣的网友可以将其他几种类型字体的画字符函数也写写。

本来是想保留GUI_DispStringHCenterAt、GUI_DispStringInRect、GUI_DispStringInRectEx等好用的函数的,可是UCGUI的函数嵌套、宏看得人眼花缭乱,里里外外相勾连{:mad:} ……索性自己写一个画字符函数得了。

用Extended Linker(LX51) 代替 BL51,可以忽略未用到的函数、常量,编译Hex大小视字体使用情况而定,可裁剪。
我的测试例程用到了13中字体,编译大小接近50k。


LIXUPENGMDK 发表于 2013-1-11 19:30:00

漂亮 谢谢{:biggrin:}

creep 发表于 2014-1-22 15:00:29

谢谢分享,非等宽字体显示在点阵LCD上的确很漂亮。

sblpp 发表于 2014-2-16 22:15:57

非常感谢!

holts2 发表于 2014-2-17 11:12:44

下了感谢

holts2 发表于 2014-3-25 11:29:23

LZ能否说明下如何选择字体 ?

xuxueliang 发表于 2014-8-24 21:51:35

好资料,谢谢啦
页: [1]
查看完整版本: 移植UCGUI的非等宽字体到51单片机,代码奉上