disp(ui)

作者:吴永 更新时间:2020年8月18日 关键字: UI、LCD、图片、显示、文字

UI显示框架

@[TOC]

disp.init()

初始化LCD驱动配置

  • 语法

    disp.init(para)

  • 参数

    参数

    释义

    取值

    para.width

    LCD宽度

    数值,最大支持QVGA分辨率,不超过320/240

    para.height

    LCD高度

    数值,最大支持QVGA分辨率,不超过320/240

    para.bus

    LCD总线类型

    disp.BUS_SPI4LINE

    para.xoffset

    LCD偏移量

    数值类型

    para.yoffset

    LCD偏移量

    数值类型

    para.freq

    LCD总线频率

    最小800K,最大200M

    para.pinrst

    暂不支持

    0

    para.pinrs

    暂不支持

    0

    para.initcmd

    LCD初始化命令表

    table类型

    para.sleepcmd

    LCD进入休眠命令表

    table类型

    para.wakecmd

    LCD退出休眠命令表

    table类型

  • 返回值

  • 例子

local function init()
    local para =
    {
        width = 128, --分辨率宽度,128像素;用户根据屏的参数自行修改
        height = 160, --分辨率高度,160像素;用户根据屏的参数自行修改
        bpp = 16, --位深度,彩屏仅支持16位
        bus = disp.BUS_SPI4LINE, --LCD专用SPI引脚接口,不可修改
        xoffset = 2, --X轴偏移
        yoffset = 1, --Y轴偏移
        freq = 20000000, --spi时钟频率,最小800K,最大200M
        pinrst = pio.P0_6, --reset,复位引脚
        pinrs = pio.P0_1, --rs,命令/数据选择引脚
        --camera_preview_no_update_screen = 1, --0表示摄像头预览刷屏;1表示摄像头预览不刷屏
        --初始化命令
        --前两个字节表示类型:0001表示延时,0000或者0002表示命令,0003表示数据
        --延时类型:后两个字节表示延时时间(单位毫秒)
        --命令类型:后两个字节命令的值
        --数据类型:后两个字节数据的值
        initcmd =
        {
            0x00020011,
            0x00010078,
            0x000200B1,
            0x00030002,
            0x00030035,
            0x00030036,
            0x000200B2,
            0x00030002,
            0x00030035,
            0x00030036,
            0x000200B3,
            0x00030002,
            0x00030035,
            0x00030036,
            0x00030002,
            0x00030035,
            0x00030036,
            0x000200B4,
            0x00030007,
            0x000200C0,
            0x000300A2,
            0x00030002,
            0x00030084,
            0x000200C1,
            0x000300C5,
            0x000200C2,
            0x0003000A,
            0x00030000,
            0x000200C3,
            0x0003008A,
            0x0003002A,
            0x000200C4,
            0x0003008A,
            0x000300EE,
            0x000200C5,
            0x0003000E,
            0x00020036,
            -- set rotation
            -- 0x000300C0,
            0x00030000,
            0x000200E0,
            0x00030012,
            0x0003001C,
            0x00030010,
            0x00030018,
            0x00030033,
            0x0003002C,
            0x00030025,
            0x00030028,
            0x00030028,
            0x00030027,
            0x0003002F,
            0x0003003C,
            0x00030000,
            0x00030003,
            0x00030003,
            0x00030010,
            0x000200E1,
            0x00030012,
            0x0003001C,
            0x00030010,
            0x00030018,
            0x0003002D,
            0x00030028,
            0x00030023,
            0x00030028,
            0x00030028,
            0x00030026,
            0x0003002F,
            0x0003003B,
            0x00030000,
            0x00030003,
            0x00030003,
            0x00030010,
            0x0002003A,
            0x00030005,
            0x00020029,
        },
        --休眠命令
        sleepcmd = {
            0x00020010,
        },
        --唤醒命令
        wakecmd = {
            0x00020011,
        }
    }
    disp.init(para)
    disp.clear()
    disp.update()
end

disp.clear()

清空显示

  • 语法

    disp.clear()

  • 参数

  • 返回值


disp.update()

刷新数据到LCD

  • 语法

    disp.update()

  • 参数

  • 返回值

注意:所有要显示的内容,摆放成功后需要调用该接口刷新,这样才能看到显示的内容

### di sp.p utte xt() 显示 文字

语法

` dis p.pu ttex t(st r,x, y)`

参数

| 参数 | 释义 |取 值| | ——– | — ———– | — ———– | |st r|文 字内 容| stri ng类 型| | x|显 示位 置, 横向 坐标 |0- disp .wid th| | y|显 示位 置, 纵向 坐标 |0-d isp. heig ht|

返 回值

disp.putimage()

显示文字

  • 语法

    disp.putimage(img,x,y)

  • 参数

    参数

    释义

    取值

    img

    图片文件

    string类型,支持bmp,jpeg,png格式

    x

    显示位置,横向坐标

    0-disp.width

    y

    显示位置,纵向坐标

    0-disp.height

  • 返回值

  • 举例

--显示图片
disp.putimage("/lua/logo_color_240X320.png",0,80)
--将显示的内容刷到LCD
disp.update()

### disp. drawr ect() 显 示矩 形框

语法

` disp .draw rect( left, top,r ight, botto m,col or)`

参数

| 参数 | 释义 |取 值| | ——– | ————– | ————– | |le ft|起 始位 置-左 |0-di sp.wi dth\| \|top |起始 位置 -上| 0-dis p.hei ght| |rig ht|结 束位 置-右 |0-di sp.wi dth\| \|b ottom |结束 位置 -下| 0-dis p.hei ght| |col or|颜 色|0 -6553 5(具 体根 据LC D色域 来定 )|

返 回值

无 - 举例

``lua

disp

.draw rect( 0,43, 128,4 4,lcd .rgb( 222,2 22,22 2))``

### disp. setco lor() 设 置前 景色

语法

di sp.se tcolo r(col or)

参数

| 参数 | 释义 |取 值| | ——– | ————– | ————– | |col or|颜 色|0 -6553 5(具 体根 据LC D色域 来定 )|

返 回值

历 史前 景色

disp.setbkcolor()

设置背景色

  • 语法

    disp.setbkcolor(color)

  • 参数

    参数

    释义

    取值

    color

    颜色

    0-65535(具体根据LCD色域来定)

  • 返回值

    历史背景色

### d isp.p utqrc ode() 显 示二 维码

语法

`` disp. putqr code( data, width ,disp layWi dth,x ,y)``

参数

| 参数 | 释义 |取 值| | ——– | ————– | ————– | |da ta|二 维码 数据 |从qr encod e.enc ode返 回的 二维 码数 据\| \|wid th|二 维码 数据 的实 际宽 度|| |di splay Width |二维 码实 际显 示宽 度|| |x|二 维码 显示 起始 坐标x |0-di sp.wi dth| |y|二 维码 显示 起始 坐标y |0-di sp.he ith|

返 回值

disp.loadfont()

加载字体文件

  • 语法

    font_id = disp.loadfont(font)

  • 参数

    参数

    释义

    取值

    font

    字体文件

  • 返回值

    字体对应id

  • 举例

font_id = disp.loadfont("/lua/18x36_0-colon.bin")

### disp .setf ont() 设置 当前 显示 字体

语法

` disp .draw rect( font_ id)`

参数

| 参数 | 释义 |取 值| | ——– | ————– | ————– | |fon t_id| 字体i d|dis p.loa dfont (font )返回 值|

返 回值

历 史字 体id - 举例

``lua

loca

l old Font = dis p.set font( font_ id)``

disp.sleep()

控制LCD是否进入休眠

  • 语法

    disp.sleep(enable)

  • 参数

    参数

    释义

    取值

    enable

    LCD休眠

    0:退出休眠 1:进入休眠

  • 返回值

    disp.write()

    向LCD控制器写入命令

  • 语法

    disp.write(cmd)

  • 参数

    参数

    释义

    取值

    cmd

    命令

    参考disp.init(para.initcmd)

  • 返回值


### di sp.cl ose() 关闭 显示 模块

语法

` disp .clos e()`

参数

返 回值