|
@@ -0,0 +1,89 @@
|
|
|
|
|
+--- 模块功能:ILI 9341驱动芯片LCD命令配置
|
|
|
|
|
+-- @author openLuat
|
|
|
|
|
+-- @module ui.color_lcd_spi_ili9341
|
|
|
|
|
+-- @license MIT
|
|
|
|
|
+-- @copyright openLuat
|
|
|
|
|
+-- @release 2018.03.27
|
|
|
|
|
+--[[
|
|
|
|
|
+注意:disp库目前支持I2C接口和SPI接口的屏,此文件的配置,硬件上使用的是LCD专用的SPI引脚,不是标准的SPI引脚
|
|
|
|
|
+硬件连线图如下:
|
|
|
|
|
+Air模块 LCD
|
|
|
|
|
+GND-------------地
|
|
|
|
|
+LCD_CS----------片选
|
|
|
|
|
+LCD_CLK---------时钟
|
|
|
|
|
+LCD_DATA--------数据
|
|
|
|
|
+LCD_DC----------数据/命令选择
|
|
|
|
|
+VDDIO-----------电源
|
|
|
|
|
+LCD_RST---------复位
|
|
|
|
|
+]]
|
|
|
|
|
+module(..., package.seeall)
|
|
|
|
|
+
|
|
|
|
|
+--[[
|
|
|
|
|
+函数名:init
|
|
|
|
|
+功能 :初始化LCD参数
|
|
|
|
|
+参数 :无
|
|
|
|
|
+返回值:无
|
|
|
|
|
+]]
|
|
|
|
|
+function init(data)
|
|
|
|
|
+ if data == 0 then
|
|
|
|
|
+ data = 0x0003006C -- 0x000300BC
|
|
|
|
|
+ else
|
|
|
|
|
+ data = 0x000300BC
|
|
|
|
|
+ end
|
|
|
|
|
+ local para = {
|
|
|
|
|
+ width = 320, -- 分辨率宽度,128像素;用户根据屏的参数自行修改
|
|
|
|
|
+ height = 240, -- 分辨率高度,160像素;用户根据屏的参数自行修改
|
|
|
|
|
+ bpp = 16, -- 位深度,彩屏仅支持16位
|
|
|
|
|
+ bus = disp.BUS_SPI4LINE, -- LCD专用SPI引脚接口,不可修改
|
|
|
|
|
+ xoffset = 0, -- X轴偏移
|
|
|
|
|
+ yoffset = 0, -- 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 = {
|
|
|
|
|
+ 0x11, 0x00010078, 0xCA, 0x000300C3, 0x00030008, 0x00030050, 0xEF,
|
|
|
|
|
+ 0x00030003, 0x00030080, 0x00030002, 0xCF, 0x00030000,
|
|
|
|
|
+ -- 0x00030099,
|
|
|
|
|
+ 0x000300c1, 0x00030030, 0xED, 0x00030064, 0x00030003, 0x00030012,
|
|
|
|
|
+ 0x00030081, 0xCB, 0x00030039, 0x0003002C, 0x00030000, 0x00030034,
|
|
|
|
|
+ 0x00030002, 0x00010020, 0xEA, 0x00030000, 0x00030000, 0xE8,
|
|
|
|
|
+ 0x00030085, 0x00030000, 0x00030078, 0xC0, 0x00030023, 0xC1,
|
|
|
|
|
+ 0x00030012, 0xC2, 0x00030011, 0xC5, 0x00030040, 0x00030030, 0xC7,
|
|
|
|
|
+ 0x000300A9, 0x3A, 0x00030055, 0x36, -- 显示方向
|
|
|
|
|
+ data, -- 0x000300BC 摄像头
|
|
|
|
|
+ 0xB1, 0x00030000, 0x00030018, 0xB6, --
|
|
|
|
|
+ 0x0003000A, 0x000300A2, 0xF2, 0x00030000, 0xF7, 0x00030020, 0x26,
|
|
|
|
|
+ 0x00030001, 0xE0, 0x0003001F, 0x00030024, 0x00030023, 0x0003000B,
|
|
|
|
|
+ 0x0003000F, 0x00030008, 0x00030050, 0x000300D8, 0x0003003B,
|
|
|
|
|
+ 0x00030008, 0x0003000A, 0x00030000, 0x00030000, 0x00030000,
|
|
|
|
|
+ 0x00030000, 0xE1, 0x00030000, 0x0003001B, 0x0003001C, 0x00030004,
|
|
|
|
|
+ 0x00030010, 0x00030007, 0x0003002F, 0x00030027, 0x00030044,
|
|
|
|
|
+ 0x00030007, 0x00030015, 0x0003000F, 0x0003003F, 0x0003003F,
|
|
|
|
|
+ 0x0003001F, 0x29
|
|
|
|
|
+ },
|
|
|
|
|
+ -- 休眠命令
|
|
|
|
|
+ sleepcmd = {0x10},
|
|
|
|
|
+ -- 唤醒命令
|
|
|
|
|
+ wakecmd = {0x11}
|
|
|
|
|
+ }
|
|
|
|
|
+ print("初始化LCD")
|
|
|
|
|
+ disp.init(para)
|
|
|
|
|
+ disp.clear()
|
|
|
|
|
+ disp.update()
|
|
|
|
|
+ print("初始化LCD完成")
|
|
|
|
|
+
|
|
|
|
|
+end
|
|
|
|
|
+
|
|
|
|
|
+-- 控制SPI引脚的电压域
|
|
|
|
|
+pmd.ldoset(15, pmd.LDO_VLCD)
|
|
|
|
|
+init(0)
|
|
|
|
|
+-- Screen.PowerOn_Screen()
|
|
|
|
|
+-- 打开背光
|
|
|
|
|
+-- 实际使用时,用户根据自己的lcd背光控制方式,添加背光控制代码
|
|
|
|
|
+-- GPIO14,用来控制LCD的背光
|
|
|
|
|
+
|