Luat模块应用手册-示例-Luat 示例-LCD drive(LCD驱动显示)

如何用开发板实现 LCD 驱动功能

目录名称

简介

LCD全称是Liquid Crystal Display,是指液晶显示屏,属于平面显示器的一种。
合宙Cat.1模块LCD接口主要用来UI设计,包括LCD初始化,图片显示操作,文字显示操作等。

材料准备

  1. EVB_Air724UG_A13开发板一套,包括天线SIM卡,USB线。
  2. PC电脑,以及官方TCP测试web页面:http://tcplab.openluat.com/
  3. luat开发环境:环境搭建方法
    Luat模块应用手册-示例-Luat 示例-LCD drive(LCD驱动显示)

步骤

实现代码

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 = 13000000, --spi时钟频率,支持110K到13M(即110000到13000000)之间的整数(包含110000和13000000)
        pinrst = pio.P0_6, --reset,复位引脚
        pinrs = pio.P0_1, --rs,命令/数据选择引脚
        --初始化命令序列
        --前两个字节表示类型:0001表示延时,0000或者0002表示命令,0003表示数据
        --延时类型:后两个字节表示延时时间(单位毫秒)
        --命令类型:后两个字节命令的值
        --数据类型:后两个字节数据的值
        initcmd =
        {
            0x00020011,
            0x00010078,
            --0x00020021, -- 反显
            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,
            0x000300C0,
            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

--控制SPI引脚的电压域
pmd.ldoset(15,pmd.LDO_VLCD)
init()



--清空LCD显示缓冲区
disp.clear()
if lcd.WIDTH==128 and lcd.HEIGHT==128 then
     --显示logo图片
      disp.putimage("/lua/logo_"..(lcd.BPP==1 and "mono.bmp" or "color.png"),lcd.BPP==1 and 41 or 0,lcd.BPP==1 and 18 or 0)
elseif lcd.WIDTH==240 and lcd.HEIGHT==320 then
     disp.puttext(common.utf8ToGb2312("欢迎使用Luat"),lcd.getxpos(common.utf8ToGb2312("欢迎使用Luat")),10)
    --显示logo图片
     disp.putimage("/lua/logo_color_240X320.png",0,80)
else
    --从坐标16,0位置开始显示"欢迎使用Luat"
    disp.puttext(common.utf8ToGb2312("欢迎使用Luat"),lcd.getxpos(common.utf8ToGb2312("欢迎使用Luat")),0)
    --显示logo图片
    disp.putimage("/lua/logo_"..(lcd.BPP==1 and "mono.bmp" or "color.png"),lcd.BPP==1 and 41 or 1,lcd.BPP==1 and 18 or 33)
end
--刷新LCD显示缓冲区到LCD屏幕上
disp.update()

常见问题

为什么屏幕点不亮
1. 检查SPI (四线制)
2. 检查V_LCD是否有电压输出,正常3.2V

相关资料以及购买链接

上一篇:hive总结四:建表实战训练(建表代码中涉及的知识点解析)


下一篇:【布局优化】基于粒子群算法求解配电网重构matlab源码