美文网首页Luat开源硬件
Luat实例教程:LCD例子详解

Luat实例教程:LCD例子详解

作者: Luat物联网通信模块 | 来源:发表于2018-03-23 13:23 被阅读81次

    特别说明:只适用于有spi接口的模块,推荐使用Air202和Air800
    1.硬件连线:选择标准SPI协议,对应的LCD与模块之间连线为:

    Air模块 LCD

    GND------------------- 地(GND)

    SPI_CS-------------- 片选(CS)

    SPI_CLK------------- 时钟(SCL)

    SPI_DO---------------数据(SDA)

    SPI_DI---------------- 数据/命令选择(DC)

    VDDIO--------------- 电源(VCC)

    UART1_CTS-------- 复位(RES)

    注意:Air202早期的开发板,UART1的CTS和RTS的丝印反了,如果连接UART1_CTS屏幕不显示,则将RST连接到UART1_RTS

    注意:要使用带UI的lod

    2.将ui demo添加到IDE中,在lcd.lua中选择对应的lcd芯片,将其他不用的注释掉。

    --[[
    模块名称:lcd
    模块功能:lcd适配接口
    模块最后修改时间:2017.08.17
    ]]
    
    --根据自己的lcd类型以及使用的spi引脚,打开下面的其中一个文件进行测试
    --mono表示黑白屏,color表示彩屏
    --standard_spi表示使用标准的SPI引脚,lcd_spi表示使用LCD专用的SPI引脚
    require"mono_standard_spi_ssd1306"
    --require"mono_standard_spi_st7567"
    --require"color_standard_spi_st7735"
    --require"mono_lcd_spi_ssd1306"
    --require"mono_lcd_spi_st7567"
    --require"color_lcd_spi_st7735"
    --require"color_lcd_spi_gc9106"
    module(...,package.seeall)
    
    --LCD分辨率的宽度和高度(单位是像素)
    WIDTH,HEIGHT,BPP = disp.getlcdinfo()
    --1个ASCII字符宽度为8像素,高度为16像素;汉字宽度和高度都为16像素
    CHAR_WIDTH = 8
    
    --[[
    函数名:getxpos
    功能  :计算字符串居中显示的X坐标
    参数  :
            str:string类型,要显示的字符串
    返回值:X坐标
    ]]
    function getxpos(str)
        return (WIDTH-string.len(str)*CHAR_WIDTH)/2
    end
    

    3.如果修改为自己想显示的内容,则可修改logo.lua文件。

    --[[
    模块名称:logo
    模块功能:显示开机欢迎语和logo图片
    模块最后修改时间:2017.08.08
    ]]
    
    module(...,package.seeall)
    
    require"uiwin"
    require"prompt"
    require"idle"
    
    --清空LCD显示缓冲区
    disp.clear()
    if lcd.WIDTH==128 and lcd.HEIGHT==128 then
    --显示logo图片
    disp.putimage("/ldata/logo_"..(lcd.BPP==1 and "mono.bmp" or "color.png"),lcd.BPP==1 and 41 or 0,lcd.BPP==1 and 18 or 0)
    else
    --从坐标16,0位置开始显示"欢迎使用Luat"
    disp.puttext("欢迎使用Luat",16,0)
    --显示logo图片
    disp.putimage("/ldata/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()
    
    --5秒后,打开提示框窗口,提示"3秒后进入待机界面"
    --提示框窗口关闭后,自动进入待机界面
    sys.timer_start(prompt.open,5000,"3秒后","进入待机界面",nil,idle.open)
    

    相关文章

      网友评论

        本文标题:Luat实例教程:LCD例子详解

        本文链接:https://www.haomeiwen.com/subject/wetxcftx.html