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类型 ============= ================= ======================================= - 返回值 无 - 例子 .. code:: lua 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 ==== ================== ================================== - 返回值 无 - 举例 .. code:: lua --显示图片 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 - 举例 .. code:: lua 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:进入休眠 ====== ======= ======================= - 返回值 .. rubric:: 无 :name: 无 .. rubric:: disp.write() :name: disp.write 向LCD控制器写入命令 - 语法 ``disp.write(cmd)`` - 参数 ==== ==== =========================== 参数 释义 取值 ==== ==== =========================== cmd 命令 参考disp.init(para.initcmd) ==== ==== =========================== - 返回值 无 -------------- +-------+ | ### | | di | | sp.cl | | ose() | | 关闭 | | 显示 | | 模块 | +-------+ | - | | 语法 | +-------+ | ` | | `disp | | .clos | | e()`` | +-------+ | - | | 参数 | +-------+ | 无 | +-------+ | - | | 返 | | 回值 | +-------+ | 无 | +-------+