开发板:
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!
这是我遇到的第一个坑,之前每注意到这个地方,结果试了很多次都没有成功显示中文字体出来。
首先第一步是使用字体生成软件生成自己的字体文件,这里借用微雪贴子中的图片,这个贴子写的挺详细的。软件用起来也不难,跟着步骤操作就好了。
生成的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这里是汉字显示例程!");
后面发现,其实只要在头文件中添加自定义中文字库声明就可以默认显示中文了