因仑“3+1”工程特种兵精英论坛

标题: 移植UCGUI的非等宽字体到51单片机,代码奉上 [打印本页]

作者: 左耳    时间: 2016-4-8 20:56
标题: 移植UCGUI的非等宽字体到51单片机,代码奉上
一直很喜欢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的函数嵌套、宏看得人眼花缭乱,里里外外相勾连 ……索性自己写一个画字符函数得了。

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





欢迎光临 因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/) Powered by Discuz! X3.4