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

2020-01-22 12:17发布

本帖最后由 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的函数嵌套、宏看得人眼花缭乱,里里外外相勾连 ……索性自己写一个画字符函数得了。
lcd_disp(lcd_ili9320).rar (245.69 KB, 下载次数: 115) 2013-1-11 18:03 上传 点击文件名下载附件
用Extended Linker(LX51) 代替 BL51,可以忽略未用到的函数、常量,编译Hex大小视字体使用情况而定,可裁剪。
我的测试例程用到了13中字体,编译大小接近50k。

IMG_20130111_161110.jpg (376.64 KB, 下载次数: 0) 下载附件 2013-1-11 18:15 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。