常量 |
类型 |
解释 |
---|---|---|
lcd.font_opposansm8 |
font |
8号字体 |
lcd.font_unifont_t_symbols |
font |
符号字体 |
lcd.font_open_iconic_weather_6x_t |
font |
天气字体 |
lcd.font_opposansm10 |
font |
10号字体 |
lcd.font_opposansm12 |
font |
12号字体 |
lcd.font_opposansm16 |
font |
16号字体 |
lcd.font_opposansm18 |
font |
18号字体 |
lcd.font_opposansm20 |
font |
20号字体 |
lcd.font_opposansm22 |
font |
22号字体 |
lcd.font_opposansm24 |
font |
24号字体 |
lcd.font_opposansm32 |
font |
32号字体 |
lcd.font_opposansm8_chinese |
font |
8号中文字体 |
lcd.font_opposansm10_chinese |
font |
10号中文字体 |
lcd.font_opposansm12_chinese |
font |
12号中文字体 |
lcd.font_opposansm16_chinese |
font |
16号中文字体 |
lcd.font_opposansm18_chinese |
font |
18号中文字体 |
lcd.font_opposansm20_chinese |
font |
20号中文字体 |
lcd.font_opposansm22_chinese |
font |
22号中文字体 |
lcd.font_opposansm24_chinese |
font |
24号中文字体 |
lcd.font_opposansm32_chinese |
font |
32号中文字体 |
lcd显示屏初始化
参数
传入值类型 |
解释 |
---|---|
string |
lcd类型,当前支持: |
table |
附加参数,与具体设备有关: |
userdata |
spi设备,当port = “device”时有效 |
返回值
无
例子
-- 初始化spi0的st7735s 注意:lcd初始化之前需要先初始化spi spi_lcd = spi.deviceSetup(0,20,0,0,8,2000000,spi.MSB,1,1) log.info("lcd.init", lcd.init("st7735s",{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_lcd))
关闭lcd显示屏
参数
无
返回值
无
例子
-- 关闭lcd lcd.close()
开启lcd显示屏背光
参数
无
返回值
无
例子
-- 开启lcd显示屏背光 lcd.on()
关闭lcd显示屏背光
参数
无
返回值
无
例子
-- 关闭lcd显示屏背光 lcd.off()
lcd睡眠
参数
无
返回值
无
例子
-- lcd睡眠 lcd.sleep()
lcd唤醒
参数
无
返回值
无
例子
-- lcd唤醒 lcd.wakeup()
lcd反显
参数
无
返回值
无
例子
-- lcd反显 lcd.invon()
lcd反显关闭
参数
无
返回值
无
例子
-- lcd反显关闭 lcd.invoff()
lcd命令
参数
传入值类型 |
解释 |
---|---|
int |
cmd |
返回值
无
例子
-- lcd命令 lcd.cmd(0x21)
lcd数据
参数
传入值类型 |
解释 |
---|---|
int |
data |
返回值
无
例子
-- lcd数据 lcd.data(0x21)
lcd颜色设置
参数
传入值类型 |
解释 |
---|---|
int |
背景色 |
int |
前景色 |
返回值
无
例子
-- lcd颜色设置 lcd.setColor(0xFFFF,0x0000)
lcd颜色填充
参数
传入值类型 |
解释 |
---|---|
int |
左上边缘的X位置. |
int |
左上边缘的Y位置. |
int |
右下边缘的X位置. |
int |
右下边缘的Y位置. |
string |
字符串或zbuff对象 |
返回值
无
例子
-- lcd颜色填充 local buff = zbuff.create({201,1,16},0x001F) lcd.draw(20,30,220,30,buff)
lcd清屏
参数
传入值类型 |
解释 |
---|---|
int |
屏幕颜色 可选参数,默认背景色 |
返回值
无
例子
-- lcd清屏 lcd.clear()
lcd颜色填充
参数
传入值类型 |
解释 |
---|---|
int |
左上边缘的X位置. |
int |
左上边缘的Y位置. |
int |
右下边缘的X位置,不含 |
int |
右下边缘的Y位置,不含 |
int |
绘画颜色 可选参数,默认背景色 |
返回值
无
例子
-- lcd颜色填充 lcd.fill(20,30,220,30,0x0000)
画一个点.
参数
传入值类型 |
解释 |
---|---|
int |
点的X位置. |
int |
点的Y位置. |
int |
绘画颜色 可选参数,默认前景色 |
返回值
无
例子
lcd.drawPoint(20,30,0x001F)
在两点之间画一条线.
参数
传入值类型 |
解释 |
---|---|
int |
第一个点的X位置. |
int |
第一个点的Y位置. |
int |
第二个点的X位置. |
int |
第二个点的Y位置. |
int |
绘画颜色 可选参数,默认前景色 |
返回值
无
例子
lcd.drawLine(20,30,220,30,0x001F)
从x / y位置(左上边缘)开始绘制一个框
参数
传入值类型 |
解释 |
---|---|
int |
左上边缘的X位置. |
int |
左上边缘的Y位置. |
int |
右下边缘的X位置. |
int |
右下边缘的Y位置. |
int |
绘画颜色 可选参数,默认前景色 |
返回值
无
例子
lcd.drawRectangle(20,40,220,80,0x001F)
从x / y位置(圆心)开始绘制一个圆
参数
传入值类型 |
解释 |
---|---|
int |
圆心的X位置. |
int |
圆心的Y位置. |
int |
半径. |
int |
绘画颜色 可选参数,默认前景色 |
返回值
无
例子
lcd.drawCircle(120,120,20,0x001F)
缓冲区绘制QRCode
参数
传入值类型 |
解释 |
---|---|
int |
x坐标 |
int |
y坐标 |
string |
二维码的内容 |
int |
显示大小 (注意:二维码生成大小与要显示内容和纠错等级有关,生成版本为1-40(对应 21x21 - 177x177)的不定大小,如果和设置大小不同会自动在指定的区域中间显示二维码,如二维码未显示请查看日志提示) |
返回值
返回值类型 |
解释 |
---|---|
nil |
无返回值 |
例子
无
设置字体
参数
传入值类型 |
解释 |
---|---|
int |
font lcd.font_XXX 请查阅常量表 |
返回值
无
例子
-- 设置为字体,对之后的drawStr有效,调用lcd.drawStr前一定要先设置 -- 若提示 "only font pointer is allow" , 则代表当前固件不含对应字体, 可使用云编译服务免费定制 -- 云编译文档: https://wiki.luatos.com/develop/compile/Cloud_compilation.html -- lcd库的默认字体均以 lcd.font_ 开头 lcd.setFont(lcd.font_opposansm12) lcd.drawStr(40,10,"drawStr") sys.wait(2000) lcd.setFont(lcd.font_opposansm12_chinese) -- 具体取值可参考api文档的常量表 lcd.drawStr(40,40,"drawStr测试")
显示字符串
参数
传入值类型 |
解释 |
---|---|
int |
x 横坐标 |
int |
y 竖坐标 注意:此(x,y)为左下起始坐标 |
string |
str 文件内容 |
int |
fg_color str颜色 注意:此参数可选,如不填写则使用之前设置的颜色,绘制只会绘制字体部分,背景需要自己清除 |
返回值
无
例子
-- 显示之前先设置为中文字体,对之后的drawStr有效 lcd.setFont(lcd.font_opposansm12) lcd.drawStr(40,10,"drawStr") sys.wait(2000) lcd.setFont(lcd.font_opposansm16_chinese) lcd.drawStr(40,40,"drawStr测试")
使用gtfont显示gb2312字符串
参数
传入值类型 |
解释 |
---|---|
string |
str 显示字符串 |
int |
size 字体大小 (支持16-192号大小字体) |
int |
x 横坐标 |
int |
y 竖坐标 |
返回值
无
例子
-- 注意, gtfont是额外的字体芯片硬件, 需要外挂在SPI总线才能调用本函数的 lcd.drawGtfontGb2312("啊啊啊",32,0,0)
使用gtfont灰度显示gb2312字符串
参数
传入值类型 |
解释 |
---|---|
string |
str 显示字符串 |
int |
size 字体大小 (支持16-192号大小字体) |
int |
gray 灰度[1阶/2阶/3阶/4阶] |
int |
x 横坐标 |
int |
y 竖坐标 |
返回值
无
例子
-- 注意, gtfont是额外的字体芯片硬件, 需要外挂在SPI总线才能调用本函数的 lcd.drawGtfontGb2312Gray("啊啊啊",32,4,0,40)
使用gtfont显示UTF8字符串
参数
传入值类型 |
解释 |
---|---|
string |
str 显示字符串 |
int |
size 字体大小 (支持16-192号大小字体) |
int |
x 横坐标 |
int |
y 竖坐标 |
返回值
无
例子
lcd.drawGtfontUtf8("啊啊啊",32,0,0)
使用gtfont灰度显示UTF8字符串
参数
传入值类型 |
解释 |
---|---|
string |
str 显示字符串 |
int |
size 字体大小 (支持16-192号大小字体) |
int |
gray 灰度[1阶/2阶/3阶/4阶] |
int |
x 横坐标 |
int |
y 竖坐标 |
返回值
无
例子
lcd.drawGtfontUtf8Gray("啊啊啊",32,4,0,40)
获取屏幕尺寸
参数
无
返回值
返回值类型 |
解释 |
---|---|
int |
宽, 如果未初始化会返回0 |
int |
高, 如果未初始化会返回0 |
例子
log.info("lcd", "size", lcd.getSize())
绘制位图
参数
传入值类型 |
解释 |
---|---|
int |
X坐标 |
int |
y坐标 |
int |
位图宽 |
int |
位图高 |
int |
位图数据,每一位代表一个像素 |
返回值
无
例子
-- 取模使用PCtoLCD2002软件即可 阴码 逐行 逆向 -- 在(0,0)为左上角,绘制 16x16 "今" 的位图 lcd.drawXbm(0, 0, 16,16, string.char( 0x80,0x00,0x80,0x00,0x40,0x01,0x20,0x02,0x10,0x04,0x48,0x08,0x84,0x10,0x83,0x60, 0x00,0x00,0xF8,0x0F,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00 ))
显示图片,当前只支持jpg,jpeg
参数
传入值类型 |
解释 |
---|---|
int |
X坐标 |
int |
y坐标 |
string |
文件路径 |
返回值
无
例子
lcd.showImage(0,0,"/luadb/logo.jpg")
主动刷新数据到界面, 仅设置buff且禁用自动属性后使用
参数
无
返回值
返回值类型 |
解释 |
---|---|
bool |
成功返回true, 否则返回nil/false |
例子
无
设置显示缓冲区, 所需内存大小为 2×宽×高 字节. 请衡量内存需求与业务所需的刷新频次.
参数
传入值类型 |
解释 |
---|---|
userdata |
conf指针, 不需要传 |
bool |
true使用heap内存, false使用vm内存, 默认使用vm内存, 不需要主动传 |
返回值
返回值类型 |
解释 |
---|---|
bool |
是否成功 |
例子
-- 初始化lcd的buff缓冲区, 可理解为FrameBuffer区域. lcd.setupBuff()
设置自动刷新, 需配合lcd.setupBuff使用
参数
传入值类型 |
解释 |
---|---|
bool |
是否自动刷新,默认为true |
返回值
无
例子
-- 设置buff 并禁用自动更新 lcd.setupBuff() lcd.autoFlush(false) -- 禁止自动更新后, 需要使用 lcd.flush() 主动刷新数据到屏幕
RGB565颜色生成
参数
传入值类型 |
解释 |
---|---|
int |
红色, 0x00 ~ 0xFF |
int |
绿色, 0x00 ~ 0xFF |
int |
蓝色, 0x00 ~ 0xFF |
bool |
是否翻转, true 翻转, false 不翻转. 默认翻转 |
返回值
返回值类型 |
解释 |
---|---|
int |
颜色值 |
例子
-- 本API支持多种模式, 参数数量分别是 1, 2, 3, 4 -- 1. 单参数形式, 24bit RGB值, swap = true, 推荐 local red = lcd.rgb565(0xFF0000) local green = lcd.rgb565(0x00FF00) local blue = lcd.rgb565(0x0000FF) -- 2. 两参数形式, 24bit RGB值, 增加swap的设置 local red = lcd.rgb565(0xFF0000, true) local green = lcd.rgb565(0x00FF00, true) local blue = lcd.rgb565(0x0000FF, true) -- 3. 三参数形式, 红/绿/蓝, 各8bit local red = lcd.rgb565(0xFF, 0x00, 0x00) local green = lcd.rgb565(0x00, 0xFF, 0x00) local blue = lcd.rgb565(0x00, 0x00, 0xFF) -- 4. 四参数形式, 红/绿/蓝, 各8bit, 增加swap的设置 local red = lcd.rgb565(0xFF, 0x00, 0x00, true) local green = lcd.rgb565(0x00, 0xFF, 0x00, true) local blue = lcd.rgb565(0x00, 0x00, 0xFF, true)