RTT小师弟 · 2021年05月26日

Art-Pi学习笔记5_3:在littlevgl软件包中显示中文字体

开发板:
ART-PI

开发环境:
rtthread studio

参考链接:
STM32之littlevGL系列教程:汉字显示 - 图形用户界面(GUI) 微雪课堂
https://www.waveshare.net/stu...

LvglFontTool字体工具更新V0.3版本 - LittlevGL - 里飞网 - Powered by Discuz!
http://www.lfly.xyz/forum.php...

LVGL官方在线字体转换工具
https://lvgl.io/tools/fontcon...

已经成功移植LVGL到Art-Pi上一段时间,也玩的挺开心。最近折腾了一下中文显示,这里把过程记录下来,方便以后自己查询。

首先,重要的事情说三遍,要显示中文字体,C语言编辑文件的编码格式必须是
UTF-8!
UTF-8!
UTF-8!
这是我遇到的第一个坑,之前每注意到这个地方,结果试了很多次都没有成功显示中文字体出来。

首先第一步是使用字体生成软件生成自己的字体文件,这里借用微雪贴子中的图片,这个贴子写的挺详细的。软件用起来也不难,跟着步骤操作就好了。
图片.png

生成的c文件我是放在LVGL软件包的example目录下,如下图所示
图片.png

接下来就是修改lv_test_theme.c文件中的代码,添加中文显示部分代码。这里一开始我是直接照搬微雪贴子中的代码,结果出现编译不通过的情况,我猜测可能是不同的lvgl版本,有些指令不相同引起的,因此这里照着软件包中的example的写法来写。

首先是声明一个外部字库
图片.png

然后创建一个lable对象,并且指定对象的text_font为myFont
图片.png

编译通过,下载到板子上呈现出想要的结果
图片.png

下面是我的代码,仅供参考

static lv_obj_t* lable_sys_info;
// lable
lable_sys_info = lv_label_create(sys_info, NULL);
lv_obj_set_style_local_text_font(lable_sys_info, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, &myFont);
lv_label_set_text(lable_sys_info, "你好,XX科技!\n这里是汉字显示例程!");

后面发现,其实只要在头文件中添加自定义中文字库声明就可以默认显示中文了
图片.png

推荐阅读
关注数
8071
内容数
181
小而美的物联网操作系统,经过14年的累积发展,RT-Thread 已经拥有一个国内最大的嵌入式开源社区,同时被广泛应用于能源、车载、医疗、消费电子等多个行业,累积装机量超过4亿台,成为国人自主开发、国内最成熟稳定和装机量最大的开源 RTOS。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息