自学内容网 自学内容网

【 LVGL】用外部FLASH存储字库并显示

LVGL–用外部FLASH存储字库并显示

应用场景

由于使用的芯片内部FLASH空间有限,如果仅使用英文字库并用不了多少空间,但是项目需要支持中英文字库,中文字库添加2w字左右,10px大小就要1M多了,内部空间根本不够用,所以考虑用外部FLASH存储字库数据,使用的GUi是LVGL。

实现过程

1、字体取模

使用的是一款开源免费的软件–>LvglFontTool,如下图所示:
界面右下角 版本选择 用于6.版本以上
类型:XBF,外部bin文件 (XBF是软件作者自定义的文字格式,适用于LVGL字体)
抗锯齿:4 按需所选 抗锯齿越大 显示效果越好 占用的空间也越大
输入好字体名字和包含的头文件
记得输入想要使用的文字
点击开始转换 即可选择保存路径 会直接存文件 生成相应的bin文件和.c文件
LvglFontTool V0.4

2、将bin文件烧录到FLASH中

我这里用的是硕飞的烧录器,用软件和专用的烧录器,把bin文件的数据烧录进去,(如果是多字库的话,要记好地址偏移)
FlyPRO

3、将生成的C文件放到工程项目中

1、打开相应字体的C文件
a.打开数组
b.切换相应的SPI读取函数
c. 如有多字库使用,需要加上地址偏移 如下图所示:

在这里插入图片描述

片段代码:

    LV_FONT_DECLARE(Font_10px);  //正常声明字体
    lv_obj_t *Down_label_2 = lv_label_create(Net); //创建第二个标签
    lv_obj_set_style_text_color(Down_label_2, lv_color_hex(0x111112), 0);   //设置标签字体颜色
    lv_obj_set_style_text_font(Down_label_2, &Font_10px, 0);        //设置标签字体
    ...........

3、结语

看着不难,其实一点都不简单,踩了很多坑,有问题就欢迎评论留言。

原文地址:https://blog.csdn.net/m0_50993351/article/details/143891081

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!