LuatOS-SOC接口文档(air780E)--eink - 墨水屏操作库

常量

常量 类型 解释
eink.MODEL_1in02d number 1.02寸d
eink.MODEL_1in54 number 1.54寸
eink.MODEL_1in54_V2 number 1.54寸_V2
eink.MODEL_1in54b number 1.54寸b
eink.MODEL_1in54b_V2 number 1.54寸b_V2
eink.MODEL_1in54_V3 number 1.54寸_V3
eink.MODEL_1in54c number 1.54寸c
eink.MODEL_1in54r number 1.54寸三色屏152*152
eink.MODEL_2in13 number 2.13寸
eink.MODEL_2in13bc number 2.13寸bc
eink.MODEL_2in13d number 2.13寸d
eink.MODEL_2in13_V2 number 2.13寸V2
eink.MODEL_2in54b_V3 number 2.13寸b_V3
eink.MODEL_2in66 number 2.66寸
eink.MODEL_2in66b number 2.66寸b
eink.MODEL_2in7 number 2.7寸
eink.MODEL_2in7b number 2.7寸b
eink.MODEL_2in9 number 2.9寸
eink.MODEL_2in9_V2 number 2.9寸_V2
eink.MODEL_2in9bc number 2.9寸bc
eink.MODEL_2in9b_V3 number 2.9寸b_V3
eink.MODEL_2in9d number 2.9寸d
eink.MODEL_3in7 number 3.7寸
eink.MODEL_4in2 number 4.2寸
eink.MODEL_4in2bc number 4.2寸b
eink.MODEL_4in2b_V2 number 4.2寸V2
eink.MODEL_5in65f number 5.65寸f
eink.MODEL_5in83 number 5.83寸
eink.MODEL_5in83bc number 5.83寸bc
eink.MODEL_5in83_V2 number 5.83寸V2
eink.MODEL_5in83b_V2 number 5.83寸bV2
eink.MODEL_7in5 number 7.5寸
eink.MODEL_7in5_HD number 7.5寸HD
eink.MODEL_7in5_V2 number 7.5寸V2
eink.MODEL_7in5bc number 7.5寸bc
eink.MODEL_7in5b_HD number 7.5寸b_HD
eink.MODEL_7in5b_V2 number 7.5寸b_V2
eink.font_opposansm8 font 8号字体
eink.font_unifont_t_symbols font 符号字体
eink.font_open_iconic_weather_6x_t font 天气字体
eink.font_opposansm10 font 10号字体
eink.font_opposansm12 font 12号字体
eink.font_opposansm16 font 16号字体
eink.font_opposansm18 font 18号字体
eink.font_opposansm20 font 20号字体
eink.font_opposansm22 font 22号字体
eink.font_opposansm24 font 24号字体
eink.font_opposansm32 font 32号字体
eink.font_opposansm8_chinese font 8号中文字体
eink.font_opposansm8_chinese font 10号中文字体
eink.font_opposansm12_chinese font 12号中文字体
eink.font_opposansm16_chinese font 16号中文字体
eink.font_opposansm18_chinese font 18号中文字体
eink.font_opposansm20_chinese font 20号中文字体
eink.font_opposansm22_chinese font 22号中文字体
eink.font_opposansm24_chinese font 24号中文字体
eink.font_opposansm32_chinese font 32号中文字体

eink.init(tp, args,spi_device)

eink显示屏初始化

参数

传入值类型 解释
number eink类型,当前支持:https://wiki.luatos.com/api/eink.html#id1
table 附加参数,与具体设备有关: pin_busy(busy) port:spi端口,例如0,1,2...如果为device方式则为"device" pin_dc:eink数据/命令选择引脚 pin_rst:eink复位引脚
userdata spi设备,当port = "device"时有效

返回值

例子

复制代码
-- 初始化spi0的eink.MODEL_4in2bc) 注意:eink初始化之前需要先初始化spi
spi_eink = spi.deviceSetup(0,20,0,0,8,20000000,spi.MSB,1,1)
log.info("eink.init",
eink.init(eink.MODEL_4in2bc,{port = "device",pin_dc = 17, pin_pwr = 7,pin_rst = 19,direction = 2,w = 160,h = 80,xoffset = 1,yoffset = 26},spi_eink))

eink.setup(full, spiid, pin_busy, pin_reset, pin_dc, pin_cs)

初始化eink

参数

传入值类型 解释
int 全屏刷新0,局部刷新1,默认是全屏刷新
int 所在的spi,默认是0
int Busy 忙信号管脚
int Reset 复位管脚
int DC 数据命令选择管脚
int CS 使能管脚

返回值

返回值类型 解释
boolean 成功返回true,否则返回false

例子


eink.sleep()

进入休眠模式,再次使用时需要重新初始化

参数

返回值

例子


eink.clear(color, force)

清除绘图缓冲区,默认不会马上刷新到设备

参数

传入值类型 解释
number color 可选,默认1。刷屏颜色
bool force 可选,默认false。如果为true则马上清屏

返回值

返回值类型 解释
nil 无返回值

例子


eink.setWin(width, height, rotate)

设置窗口

参数

传入值类型 解释
int width 宽度
int height 高度
int rotate 显示方向,0/1/2/3, 相当于旋转0度/90度/180度/270度

返回值

返回值类型 解释
nil 无返回值

例子


eink.getWin()

获取窗口信息

参数

返回值

返回值类型 解释
int width 宽
int height 高
int rotate 旋转方向

例子


eink.setFont(font)

设置字体

参数

传入值类型 解释
userdata 字体

返回值

例子

复制代码
-- 设置为字体,对之后的print有效
eink.setFont(eink.font_opposansm12_chinese)

eink.print(x, y, str, colored)

绘制字符串

参数

传入值类型 解释
int x坐标
int y坐标
string 字符串
int 颜色, 可以是0或者1, 默认是0

返回值

返回值类型 解释
nil 无返回值

例子

复制代码
-- 先设置字体, 然后写字
-- 可用字体取决于具体的固件, 如果没有你想要的大小,可以云编译一份自定义固件
-- font_opposansm8_chinese
-- font_opposansm10_chinese
-- font_opposansm12_chinese
-- font_opposansm14_chinese
-- font_opposansm16_chinese
eink.setFont(eink.font_opposansm12_chinese)
eink.print(10, 20, "LuatOS")

eink.show(x, y, noClear)

将缓冲区图像输出到屏幕

参数

传入值类型 解释
int x 输出的x坐标,默认0
int y 输出的y坐标,默认0
bool 可选,默认false。如果为true则不进行清屏,直接刷上新内容

返回值

返回值类型 解释
nil 无返回值

例子


eink.draw(buff, buff2, noclear)

直接输出数据到屏幕,支持双色数据

参数

传入值类型 解释
userdata zbuff指针
userdata zbuff指针
bool 可选,默认false。如果为true则不进行清屏,直接刷上新内容

返回值

返回值类型 解释
nil 无返回值

例子


eink.line(x, y, x2, y2, colored)

缓冲区绘制线

参数

传入值类型 解释
int 起点x坐标
int 起点y坐标
int 终点x坐标
int 终点y坐标

返回值

返回值类型 解释
nil 无返回值

例子

复制代码
eink.line(0, 0, 10, 20, 0)

eink.rect(x, y, x2, y2, colored, fill)

缓冲区绘制矩形

参数

传入值类型 解释
int 左上顶点x坐标
int 左上顶点y坐标
int 右下顶点x坐标
int 右下顶点y坐标
int 默认是0
int 是否填充,默认是0,不填充

返回值

返回值类型 解释
nil 无返回值

例子

复制代码
eink.rect(0, 0, 10, 20)
eink.rect(0, 0, 10, 20,0, 1) -- Filled

eink.circle(x, y, radius, colored, fill)

缓冲区绘制圆形

参数

传入值类型 解释
int 圆心x坐标
int 圆心y坐标
int 半径
int 默认是0
int 是否填充,默认是0,不填充

返回值

返回值类型 解释
nil 无返回值

例子

复制代码
eink.circle(0, 0, 10)
eink.circle(0, 0, 10, 1, 1) -- Filled

eink.qrcode(x, y, str, size)

缓冲区绘制QRCode

参数

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

返回值

返回值类型 解释
nil 无返回值

例子


eink.bat(x, y, bat)

缓冲区绘制电池

参数

传入值类型 解释
int x坐标
int y坐标
int 电池电压,单位毫伏

返回值

返回值类型 解释
nil 无返回值

例子


eink.weather_icon(x, y, code)

缓冲区绘制天气图标

参数

传入值类型 解释
int x坐标
int y坐标
int 天气代号

返回值

返回值类型 解释
nil 无返回值

例子


eink.model(m)

设置墨水屏驱动型号

参数

传入值类型 解释
int 型号名称, 例如 eink.model(eink.MODEL_1in54_V2)

返回值

返回值类型 解释
nil 无返回值

例子


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

绘制位图

参数

传入值类型 解释
int X坐标
int y坐标
int 位图宽
int 位图高
int 位图数据,每一位代表一个像素

返回值

例子

复制代码
-- 取模使用PCtoLCD2002软件即可
-- 在(0,0)为左上角,绘制 16x16 "今" 的位图
eink.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
))

eink.setCtx(index)

切换颜色画板, 适合多色墨水屏

参数

传入值类型 解释
int 颜色索引, 黑色为0, 红色为1

返回值

例子

复制代码
-- 仅适合多色墨水屏, 对单色墨水屏(只有黑白)的无效
eink.setCtx(1)
-- 切换后, 所有drawXXX都会操作在指定颜色的画板

eink.async(index)

异步方式,使用此方式需要先 require("sysplus") 之后 eink.clear().wait() eink.show().wait()进行刷屏

参数

传入值类型 解释
int 1 使用异步

返回值

例子

复制代码
    eink.async(1)
    spi_eink = spi.deviceSetup(spi_id,pin_cs,0,0,8,20*1000*1000,spi.MSB,1,1)
    eink.init(eink.MODEL_1in54,
            {port = "device",pin_dc = pin_dc, pin_busy = pin_busy,pin_rst = pin_reset},
            spi_eink)
    eink.setWin(200, 200, 0)
    sys.wait(100)
    log.info("e-paper 1.54", "Testing Go")
    eink.print(30, 20, "LuatOS-AIR780E",0x00)
    eink.show().wait()
    log.info("e-paper 1.54", "Testing End")
相关推荐
合宙Luat5 个月前
Air780EP模块 LuatOS开发-MQTT接入阿里云应用指南
阿里云·云计算·合宙·air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--rsa - RSA加密解密
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--rtos - RTOS底层操作库
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--repl - “读取-求值-输出” 循环
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--pwm - PWM模块
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--protobuf - ProtoBuffs编解码
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--otp - OTP操作库
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--os - os操作
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--nimble - 蓝牙BLE库(nimble版)
air780e
l5317981511 年前
LuatOS-SOC接口文档(air780E)--pack - 打包和解包格式串
air780e