特别说明:只适用于有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)
-
完整代码见下链接
网友评论