合宙Air724UG LuatOS-Air lvgl7-lvgl(矢量字体)

如何用开发板实现lvgl加载外部矢量字体功能

目录名称

  • 如何用开发板实现lvgl加载外部矢量字体功能
    • 简介
    • 材料准备
    • API 说明
    • 步骤
      • 1. 将字库芯片接在模块spi上
      • 2. 版本定制
      • 3. 初始化spi
      • 4. 设置字体
      • 5.字体使用
      • 测试固件和脚本
      • 显示效果
      • 字号灰度最佳粗细值对应表
    • 常见问题
      • 1. 设置68号字体,显示不了
      • 2. 目前字库只支持一种字体(黑体)
      • 3. 金牛座使用字库,授权 (V3210之前版本需要授权,>=V3210版本不需要授权)
    • 相关资料以及购买链接

简介

lvgl字体无法设置字号,只能每种字号都做一个字体文件,界面中用到了多个字号的文字,又不希望每个字号都加载一个字体文件。可以通过外接矢量字库芯片来实现。矢量字体可以缩放后不损失清晰度,并且字库数据存储在外部芯片里,通过spi与模块连接,不占用内部存储空间。

材料准备

  1. 金牛座开发板一套,USB线,GC9503屏。
  2. LuatOS-Air开发环境:环境搭建方法

    合宙Air724UG LuatOS-Air lvgl7-lvgl(矢量字体)_第1张图片

API 说明

lvgl.font_load
lvgl中的加载字库的接口

  • 语法
font = lvgl.font_load(spi_num, size[, gray[, thickness]])
  • 参数
参数 类型 释义 取值
spi_num number 字库芯片所接spi
size number 字号 16-192
gray number 灰度值 1,2,4
thickness number 粗细值
  • 返回值
返回值 类型 释义 取值
font userdata 字体句柄

步骤

1. 将字库芯片接在模块spi上

目前只支持GT5SUCD2E-1A(灰度4支持48以下字号,灰度2支持98以下字号,灰度1支持192以下字号)
下图为金牛座开发板链接实物图:

合宙Air724UG LuatOS-Air lvgl7-lvgl(矢量字体)_第2张图片

2. 版本定制

大于等于V3208的LuatOS-Air版本,需去定制固件网页生成带VF功能的定制固件。定制固件地址:合宙ERP系统

3. 初始化spi

spi.setup(spi.SPI_1,1,1,8,50000000,1)

4. 设置字体

font68=lvgl.font_load(spi.SPI_1,68,2,190)

5.字体使用

local xiaoguoLabel=lvgl.label_create(itemCont, nil)   
lvgl.obj_set_style_local_text_font(xiaoguoLabel, lvgl.LABEL_PART_MAIN, lvgl.STATE_DEFAULT, font68)
 lvgl.label_set_text(xiaoguoLabel, "测试@TEST")
lvgl.obj_align(xiaoguoLabel,modeLabelCont, lvgl.ALIGN_OUT_RIGHT_MID, 238, 0)

测试固件和脚本

LuatOS-Air_V3211_RDA8910_RFTLLMPVF_0x110000.pac
script.7z

显示效果

合宙Air724UG LuatOS-Air lvgl7-lvgl(矢量字体)_第3张图片

字号灰度最佳粗细值对应表

合宙Air724UG LuatOS-Air lvgl7-lvgl(矢量字体)_第4张图片

常见问题

1. 设置68号字体,显示不了

灰度设置不对,68号字体,灰度应设置为2(灰度4支持48以下字号,灰度2支持98以下字号,灰度1支持192以下字号)。

2. 目前字库只支持一种字体(黑体)

3. 金牛座使用字库,授权 (V3210之前版本需要授权,>=V3210版本不需要授权)

金牛座使用字库,需要授权 ,前期授权的,现在想要使用需要先解授权,再重新授权。(之前授权工具里没有对字库授权)合宙授权工具

相关资料以及购买链接

  • LuatOS-HMI人机交互评估板金牛座
  • GT5SUCD2E-1A 标准矢量字库芯片
  • Air722大屏模组开发资料包

你可能感兴趣的:(AIR724软件,Air724UG)