--- 模块功能: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的背光