--- 模块功能:ST 7789驱动芯片LCD命令配置
-- @author openLuat
-- @module ui.color_std_spi_st7789
-- @license MIT
-- @copyright openLuat
-- @release 2018.08.14
--[[
注意:disp库目前支持I2C接口和SPI接口的屏,此文件的配置,硬件上使用的是标准的SPI引脚,不是LCD专用的SPI引脚
硬件连线图如下:
Air模块 LCD
GND--地
SPI_CS--片选
SPI_CLK--时钟
SPI_DO--数据
SPI_DI--数据/命令选择
VDDIO--电源
UART1_CTS--复位
注意:Air202早期的开发板,UART1的CTS和RTS的丝印反了
]]
module(...,package.seeall)
--[[
函数名:init
功能 :初始化LCD参数
参数 :无
返回值:无
]]
local function init()
local para =
{
width = 320, --分辨率宽度,128像素;用户根据屏的参数自行修改
height = 240, --分辨率高度,160像素;用户根据屏的参数自行修改
bpp = 16, --位深度,彩屏仅支持16位
bus = disp.BUS_SPI4LINE, --LCD专用SPI引脚接口,不可修改
pinrst = pio.P0_14, --reset,复位引脚
pinrs = pio.P0_18, --rs,命令/数据选择引脚
--bus = disp.BUS_SPI, --标准SPI接口
--pinrst = pio.P0_3, --reset,复位引脚
--pinrs = pio.P0_12, --rs,命令/数据选择引脚
xoffset = 0, --X轴偏移
yoffset = 0, --Y轴偏移
freq = 13000000, --spi时钟频率,支持110K到13M(即110000到13000000)之间的整数(包含110000和13000000)
--hwfillcolor = 0xFFFFFF, --填充色,黑色
--初始化命令
--前两个字节表示类型:0001表示延时,0000或者0002表示命令,0003表示数据
--延时类型:后两个字节表示延时时间(单位毫秒)
--命令类型:后两个字节命令的值
--数据类型:后两个字节数据的值
initcmd =
{
0x00020036, --//控制
0x00030060, --横竖屏C0/A0/00/60
--0x00020021,--//0x13显示不反转 ,21h 反显
0x0002003A,
0x00030005,
0x000200B2, --//前后肩
0x0003000C,
0x0003000C,
0x00030000,
0x00030033,
0x00030033,
0x000200B7, --//VGH VGL
0x00030035,
0x000200BB, --//VCOM
0x00030019,
0x000200C0, --//LCM
0x0003002C,
0x000200C2,
0x00030001,
0x000200C3, --//VRH( vcom+vcom offset+vdv)
0x00030012,
0x000200C4, --//vdv
0x00030020,
0x000200C6, --//帧率
0x0003000F,
0x000200D0, --//功率控制模式
0x000300A4,
0x000300A1,
0x000200E0, --//正GAMMA
0x000300D0,
0x00030004,
0x0003000D,
0x00030011,
0x00030013,
0x0003002B,
0x0003003F,
0x00030054,
0x0003004C,
0x00030018,
0x0003000D,
0x0003000B,
0x0003001F,
0x00030023,
0x000200E1, --//负GAMMA
0x000300D0,
0x00030004,
0x0003000C,
0x00030011,
0x00030013,
0x0003002C,
0x0003003F,
0x00030044,
0x00030051,
0x0003002F,
0x0003001F,
0x0003001F,
0x00030020,
0x00030023,
0x00020011, --// sleep out
0x00010078,
0x00020029 --//Display On
},
--休眠命令
sleepcmd = {
0x00020010,
},
--唤醒命令
wakecmd = {
0x00020011,
}
}
disp.init(para)
disp.clear()
disp.update()
end
--控制SPI引脚的电压域
pmd.ldoset(6,pmd.LDO_VMMC)
init()
--打开背光
--实际使用时,用户根据自己的lcd背光控制方式,添加背光控制代码