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 核心库。