查看: 1480|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-8 20:56:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一直很喜欢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。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入中科因仑

本版积分规则

快速回复 返回顶部 返回列表