LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块

2023-10-22 23:44

本文主要是介绍LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

常量

常量

类型

解释

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.init(tp, args)

lcd显示屏初始化

参数

传入值类型

解释

string

lcd类型,当前支持:
st7796
st7789
st7735
st7735v
st7735s
gc9a01
gc9106l
gc9306x
ili9486
custom

table

附加参数,与具体设备有关:
pin_pwr(背光)为可选项,可不设置
port:spi端口,例如0,1,2…如果为device方式则为”device”
pin_dc:lcd数据/命令选择引脚
pin_rst:lcd复位引脚
pin_pwr:lcd背光引脚 可选项,可不设置
direction:lcd屏幕方向 0:0° 1:180° 2:270° 3:90°
w:lcd 水平分辨率
h:lcd 竖直分辨率
xoffset:x偏移(不同屏幕ic 不同屏幕方向会有差异)
yoffset:y偏移(不同屏幕ic 不同屏幕方向会有差异)

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.close()

关闭lcd显示屏

参数

返回值

例子

-- 关闭lcd
lcd.close()

lcd.on()

开启lcd显示屏背光

参数

返回值

例子

-- 开启lcd显示屏背光
lcd.on()

lcd.off()

关闭lcd显示屏背光

参数

返回值

例子

-- 关闭lcd显示屏背光
lcd.off()

lcd.sleep()

lcd睡眠

参数

返回值

例子

-- lcd睡眠
lcd.sleep()

lcd.wakeup()

lcd唤醒

参数

返回值

例子

-- lcd唤醒
lcd.wakeup()

lcd.invon()

lcd反显

参数

返回值

例子

-- lcd反显
lcd.invon()

lcd.invoff()

lcd反显关闭

参数

返回值

例子

-- lcd反显关闭
lcd.invoff()

lcd.cmd(cmd)

lcd命令

参数

传入值类型

解释

int

cmd

返回值

例子

-- lcd命令
lcd.cmd(0x21)

lcd.data(data)

lcd数据

参数

传入值类型

解释

int

data

返回值

例子

-- lcd数据
lcd.data(0x21)

lcd.setColor(back,fore)

lcd颜色设置

参数

传入值类型

解释

int

背景色

int

前景色

返回值

例子

-- lcd颜色设置
lcd.setColor(0xFFFF,0x0000)

lcd.draw(x1, y1, x2, y2,color)

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.clear(color)

lcd清屏

参数

传入值类型

解释

int

屏幕颜色 可选参数,默认背景色

返回值

例子

-- lcd清屏
lcd.clear()

lcd.fill(x1, y1, x2, y2,color)

lcd颜色填充

参数

传入值类型

解释

int

左上边缘的X位置.

int

左上边缘的Y位置.

int

右下边缘的X位置,不含

int

右下边缘的Y位置,不含

int

绘画颜色 可选参数,默认背景色

返回值

例子

-- lcd颜色填充
lcd.fill(20,30,220,30,0x0000)

lcd.drawPoint(x0,y0,color)

画一个点.

参数

传入值类型

解释

int

点的X位置.

int

点的Y位置.

int

绘画颜色 可选参数,默认前景色

返回值

例子

lcd.drawPoint(20,30,0x001F)

lcd.drawLine(x0,y0,x1,y1,color)

在两点之间画一条线.

参数

传入值类型

解释

int

第一个点的X位置.

int

第一个点的Y位置.

int

第二个点的X位置.

int

第二个点的Y位置.

int

绘画颜色 可选参数,默认前景色

返回值

例子

lcd.drawLine(20,30,220,30,0x001F)

lcd.drawRectangle(x0,y0,x1,y1,color)

从x / y位置(左上边缘)开始绘制一个框

参数

传入值类型

解释

int

左上边缘的X位置.

int

左上边缘的Y位置.

int

右下边缘的X位置.

int

右下边缘的Y位置.

int

绘画颜色 可选参数,默认前景色

返回值

例子

lcd.drawRectangle(20,40,220,80,0x001F)

lcd.drawCircle(x0,y0,r,color)

从x / y位置(圆心)开始绘制一个圆

参数

传入值类型

解释

int

圆心的X位置.

int

圆心的Y位置.

int

半径.

int

绘画颜色 可选参数,默认前景色

返回值

例子

lcd.drawCircle(120,120,20,0x001F)

lcd.drawQrcode(x, y, str, size)

缓冲区绘制QRCode

参数

传入值类型

解释

int

x坐标

int

y坐标

string

二维码的内容

int

显示大小 (注意:二维码生成大小与要显示内容和纠错等级有关,生成版本为1-40(对应 21x21 - 177x177)的不定大小,如果和设置大小不同会自动在指定的区域中间显示二维码,如二维码未显示请查看日志提示)

返回值

返回值类型

解释

nil

无返回值

例子


lcd.setFont(font)

设置字体

参数

传入值类型

解释

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测试")

lcd.drawStr(x,y,str,fg_color)

显示字符串

参数

传入值类型

解释

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测试")

lcd.drawGtfontGb2312(str,size,x,y)

使用gtfont显示gb2312字符串

参数

传入值类型

解释

string

str 显示字符串

int

size 字体大小 (支持16-192号大小字体)

int

x 横坐标

int

y 竖坐标

返回值

例子

-- 注意, gtfont是额外的字体芯片硬件, 需要外挂在SPI总线才能调用本函数的
lcd.drawGtfontGb2312("啊啊啊",32,0,0)

lcd.drawGtfontGb2312Gray(str,size,gray,x,y)

使用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)

lcd.drawGtfontUtf8(str,size,x,y)

使用gtfont显示UTF8字符串

参数

传入值类型

解释

string

str 显示字符串

int

size 字体大小 (支持16-192号大小字体)

int

x 横坐标

int

y 竖坐标

返回值

例子

lcd.drawGtfontUtf8("啊啊啊",32,0,0)

lcd.drawGtfontUtf8Gray(str,size,gray,x,y)

使用gtfont灰度显示UTF8字符串

参数

传入值类型

解释

string

str 显示字符串

int

size 字体大小 (支持16-192号大小字体)

int

gray 灰度[1阶/2阶/3阶/4阶]

int

x 横坐标

int

y 竖坐标

返回值

例子

lcd.drawGtfontUtf8Gray("啊啊啊",32,4,0,40)

lcd.getSize()

获取屏幕尺寸

参数

返回值

返回值类型

解释

int

宽, 如果未初始化会返回0

int

高, 如果未初始化会返回0

例子

log.info("lcd", "size", lcd.getSize())

lcd.drawXbm(x, y, w, h, data)

绘制位图

参数

传入值类型

解释

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
))

lcd.showImage(x, y, file)

显示图片,当前只支持jpg,jpeg

参数

传入值类型

解释

int

X坐标

int

y坐标

string

文件路径

返回值

例子

lcd.showImage(0,0,"/luadb/logo.jpg")

lcd.flush()

主动刷新数据到界面, 仅设置buff且禁用自动属性后使用

参数

返回值

返回值类型

解释

bool

成功返回true, 否则返回nil/false

例子


lcd.setupBuff(conf, onheap)

设置显示缓冲区, 所需内存大小为 2×宽×高 字节. 请衡量内存需求与业务所需的刷新频次.

参数

传入值类型

解释

userdata

conf指针, 不需要传

bool

true使用heap内存, false使用vm内存, 默认使用vm内存, 不需要主动传

返回值

返回值类型

解释

bool

是否成功

例子

-- 初始化lcd的buff缓冲区, 可理解为FrameBuffer区域.
lcd.setupBuff()

lcd.autoFlush(enable)

设置自动刷新, 需配合lcd.setupBuff使用

参数

传入值类型

解释

bool

是否自动刷新,默认为true

返回值

例子

-- 设置buff 并禁用自动更新
lcd.setupBuff()
lcd.autoFlush(false)
-- 禁止自动更新后, 需要使用 lcd.flush() 主动刷新数据到屏幕

lcd.rgb565(r, g, b, swap)

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)

这篇关于LuatOS-SOC接口文档(air780E)--lcd - lcd驱动模块的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/264352

相关文章

MySQL中C接口的实现

《MySQL中C接口的实现》本节内容介绍使用C/C++访问数据库,包括对数据库的增删查改操作,主要是学习一些接口的调用,具有一定的参考价值,感兴趣的可以了解一下... 目录准备mysql库使用mysql库编译文件官方API文档对象的创建和关闭链接数据库下达sql指令select语句前言:本节内容介绍使用C/

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

利用Python操作Word文档页码的实际应用

《利用Python操作Word文档页码的实际应用》在撰写长篇文档时,经常需要将文档分成多个节,每个节都需要单独的页码,下面:本文主要介绍利用Python操作Word文档页码的相关资料,文中通过代码... 目录需求:文档详情:要求:该程序的功能是:总结需求:一次性处理24个文档的页码。文档详情:1、每个

C++读写word文档(.docx)DuckX库的使用详解

《C++读写word文档(.docx)DuckX库的使用详解》DuckX是C++库,用于创建/编辑.docx文件,支持读取文档、添加段落/片段、编辑表格,解决中文乱码需更改编码方案,进阶功能含文本替换... 目录一、基本用法1. 读取文档3. 添加段落4. 添加片段3. 编辑表格二、进阶用法1. 文本替换2

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

Python实现自动化删除Word文档超链接的实用技巧

《Python实现自动化删除Word文档超链接的实用技巧》在日常工作中,我们经常需要处理各种Word文档,本文将深入探讨如何利用Python,特别是借助一个功能强大的库,高效移除Word文档中的超链接... 目录为什么需要移除Word文档超链接准备工作:环境搭建与库安装核心实现:使用python移除超链接的

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法