LVGL显示其他大小的中文

1、LVGL自带汉字库CJK

使用自带的CJK汉字库需要将lv_conf.h文件中的CJK字库宏定义开启,否则不能使用。直接搜索“LV_FONT_SIMSUN_16_CJK”宏定义更改为1。

/* 展示特色 */
#define LV_FONT_MONTSERRAT_12_SUBPX         0
#define LV_FONT_MONTSERRAT_28_COMPRESSED    0  /* bpp = 3 */
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW    0  /* 希伯来语,阿拉伯语,波斯语以及它们的各种形式 */
#define LV_FONT_SIMSUN_16_CJK               1  /* 1000个最常见的CJK自由基s */

需要在lv_conf.h文件中找到LV_FONT_SIMSUN_16_CJK设置成1;

JK库位于LVGL的路径下的src文件夹下的font子文件夹中:lv_font_simsun_16_cjk.c,这个文件中包含了日常使用的汉字数量有数千个。

示例如下:

    lv_obj_t* label = lv_label_create(lv_scr_act());                                /* 定义并创建标签 */
	lv_obj_set_style_text_font(label,  &lv_font_simsun_16_cjk, 0);
	lv_label_set_text_fmt(label, "%d湿度:%d℃, 温度:%d%%", lv_rand(0, 9), lv_rand(20, 30), lv_rand(70, 80));
    lv_obj_set_style_text_font(label, font, LV_PART_MAIN);                          /* 设置标签文本字体 */
    lv_obj_set_width(label, scr_act_width() / 3);                                   /* 设置标签宽度 */
    lv_obj_align(label, LV_ALIGN_CENTER, scr_act_width() / 3, 0);                   /* 设置标签位置 */
    lv_obj_set_style_text_align(label, LV_TEXT_ALIGN_CENTER, LV_PART_MAIN);         /* 设置标签文本对齐方式 */

使用函数lv_obj_set_style_text_font()引用lv_font_simsun_16_cjk字库。
如果没法显示所有汉字的话,这时需要注意下工程代码处于UTF-8编码模式下

2、自定义LVGL汉字库

百问网有通过免费的字体好像不是TTF格式的这个也没关系
在这里插入图片描述

LVGL官方字体转换器
根据提示填写内容,TTF字体单击浏览选择字体
在这里插入图片描述

提交后,自动下载文件链接
在这里插入图片描述

放入MDK文件中
在这里插入图片描述
将下载的.c字库翻到最底部,有了这个我们就可以用了。
在这里插入图片描述
要在文件中声明字体使用使用函数 LV_FON_DECLARE 引用。
在这里插入图片描述

如果无法显示在MDK中更改成UTF-8编码格式。在这里插入图片描述

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐