Art-Pi学习笔记5_3:在littlevgl软件包中显示中文字体
开发板: ART-PI
开发环境: rtthread studio
参考链接: STM32之littlevGL系列教程:汉字显示 - 图形用户界面(GUI) 微雪课堂 https://www.waveshare.net/study/article-999-1.html
LvglFontTool字体工具更新V0.3版本 - LittlevGL - 里飞网 - Powered by Discuz! http://www.lfly.xyz/forum.php?mod=viewthread&tid=11&extra=page%3D1
LVGL官方在线字体转换工具 https://lvgl.io/tools/fontconverter
已经成功移植LVGL到Art-Pi上一段时间,也玩的挺开心。最近折腾了一下中文显示,这里把过程记录下来,方便以后自己查询。
首先,重要的事情说三遍,要显示中文字体,C语言编辑文件的编码格式必须是 UTF-8! UTF-8! UTF-8! 这是我遇到的第一个坑,之前每注意到这个地方,结果试了很多次都没有成功显示中文字体出来。

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

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

首先是声明一个外部字库

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

编译通过,下载到板子上呈现出想要的结果
下面是我的代码,仅供参考
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这里是汉字显示例程!");