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开发环境:环境搭建方法
    图片.png

步骤

实现代码

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

相关资料以及购买链接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值