跳转至

gtfont - 高通字库芯片

作者:江访

一、概述

gtfont 高通字库芯片库是 LuatOS 的外接字库芯片驱动库,支持高通系列字库芯片,提供了矢量的字体显示功能;

gtfont 库主要功能:

1、字库芯片初始化:支持高通字库芯片的初始化;

2、字体显示:通过外接字库芯片显示多种字体;

注意事项:

1、特别提醒:使用本库的任何代码,都需要额外的高通字体芯片;

2、没有额外芯片是无法运行的;

二、核心示例

1、核心示例是指:使用本库文件提供的核心 API,开发的基础业务逻辑的演示代码;

2、核心示例的作用是:帮助开发者快速理解如何使用本库,所以核心示例的逻辑都比较简单;

3、更加完整和详细的 demo,请参考 LuatOS 仓库 中各个产品目录下的 demo/gtfont

2.1 核心代码

-- 本核心示例演示gtfont库的基本使用流程:
-- 1、初始化SPI设备
-- 2、初始化高通字库芯片
-- 3、使用字库芯片显示文本

-- 主函数
local function main()
    -- 将SPI接口设置为SPI对象
    spi_gtfont = spi.deviceSetup(spi_id or 0, spi_cs or 8, 0, 0, 8, 20*1000*1000, spi.MSB, 1, 0)
    log.error("spi.deviceSetup", type(spi_gtfont))

    -- 检查SPI设备对象是否创建成功
    **if** type(spi_gtfont) ~= "userdata" **then**
        log.error("spi.deviceSetup error", type(spi_gtfont))
    **end**

    -- 初始化矢量字库
    **if** not gtfont.init(spi_gtfont) **then**
        log.error("gtfont.init error")
    **end**
end

-- 以下是gtfont初始化后分别在lcd和u8g2中的调用示例,注意:两个库无法同时进行初始化使用

-- 1、在lcd初始化后可以使用以下接口在lcd显示屏上进行显示Utf8编码格式字符串
-- 使用接口:lcd.drawGtfontUtf8Gray(str,size,gray,x,y)
lcd.drawGtfontUtf8Gray("你好合宙",32,4,0,40)

-- 2、在u8g2初始化后,可以使用以下接口在lcd显示屏上进行显示Utf8编码格式字符串
-- 使用接口:u8g2.DrawButtonUTF8(str,x, y, flags, width, padding_h, padding_v)
-- 显示一个带边框和阴影的按钮,按钮内容为 hello luatos
u8g2.DrawButtonUTF8("hello luatos",10, 20, u8g2.BTN_BW2 + u8g2.BTN_SHADOW2, 0, 0, 0)


-- 启动主函数
sys.taskInit(main)

2.2 效果演示

三、常量详解

核心库常量,顾名思义是由合宙 LuatOS 内核固件中定义的、不可重新赋值或修改的固定值,在脚本代码中不需要声明,可直接调用;

gtfont 核心库没有常量。

四、函数详解

gtfont.init(spi_device)

功能

初始化高通字体芯片;

注意事项

仅支持将 SPI 接口设置为 SPI 对象的方式;

参数

spi_device

参数含义:SPI设备对象
**数据类型**userdata
**取值范围**spi.deviceSetup返回的对象
**是否必选**:必须传入此参数;
**注意事项**:需要先初始化SPI设备
**参数示例**spi_device

返回值

local result = gtfont.init(spi_device)

result

含义说明:初始化结果;
**数据类型**boolean
**取值范围**true-成功,false-失败;
**注意事项**:返回true表示初始化成功
**返回示例**true

示例

-- 初始化字库芯片
local spi_gtfont = spi.deviceSetup(0, 8, 0, 0, 8, 1000000, spi.MSB, 1, 0)
gtfont.init(spi_gtfont)

五、产品支持说明

支持 LuatOS 开发的产品是否支持外接高通字库芯片,可以查看选型手册中 合宙 LuatOS 固件 章节对应型号是否支持 gtfont 核心库。