STM32——LCD—TFTLCD原理与配置介绍

1、TFTLCD简介

TFTLCD即薄膜晶体管液晶显示屏。它与无源TN-TLCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可以有效的克服非选通时的串扰,使液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。

TFTLCD具有:亮度好、对比度高、层次感强、颜色鲜艳等特点。目前是最主流的LCD显示器。广泛应用于电视、电脑、手机、平板等各种电子产品。

2、ALINETEK 2.8寸TFTLCD模块特点

(1)240*320分辨率 (2)16位真彩显示 (3)自带电阻触摸屏 (3)自带背光电路

注意:模块是3.3V供电的,不支持5V电压的MCU,如果是5V电压的MCU,必须在信号线串接120Ω电阻使用。

 

3、ALINETEK 2.8寸TFTLCD接口说明(16位80并口)

注意:DB1~DB8,DB10~DB17,总是按顺序连接MCU的D0~D15

·LCD_CS:LCD片选信号   ·LCD_WR:LCD写信号   ·LCD_RD:LCD读信号   ·DB【17:1】:16位双向数据线   ·LCD_RST:硬复位LCD信号   ·LCD_RS:命令/数据标志(0:命令,1:数据)   ·BL_CTR:背光控制信号    ·T_MISO/T_MOSI/T_PEN/T_CS/T_CLK,触摸屏接口信号

 

4、ALINETEK 2.8寸 TFTLCD 16位80并口驱动简介

模块的8080并口读/写的过程为:

先根据要写入/读取的数据类型,设置RS为高(数据)/低(命令),然后拉低片选,选中ILI9341,接着根据读数据/写数据置RD/WR为低,然后:(1)读数据:在RD的上升沿,读取数据线上的数据(D【15:0】);(2)写数据:在WR的上升沿,使数据写入到ILI9341里面;

 

并口时序图为例:CS拉低片选,选中ILI9341;WR产生脉冲;RS反应是命令还是数据;D【0:15】为我们要写入的数据;因为是“写”,RD一直为高(同理“读”的时候WR一直为高)

5、ILI9341驱动时序

ILI9341 8080并口时序图

 

重点时序:读ID低电平脉宽(trdl)读ID高电平脉宽(trdh)读FM低电平脉宽(trdlfm) 读FM高电平脉宽(trdhfm) 写控制低电平脉宽(twrl) 写控制高电平脉宽(trwh)

注意:ID指LCD的ID号,FM指帧缓存,即:GRAM。

6、LCD驱动流程

 

(1)硬复位(2)初始化序列(3)设置坐标(4)画点和读点(写GRAM指令与读GRAM指令) 

7、指令简介

(1)RGB565格式说明

 

比如:0XF800为红色(D15~D11五个位都是1显示红色,其它位都是0没有颜色)

(2)ILI9341指令格式说明

ILI9341所有指令都是8位的(高8位无效),且参数除了读写GRAM的时候是16位,其它操作参数都是8位。

ILI9341的指令很多,举例6条指令:0XD3   0X36   0X2B   0X2A   0X2C   0X2E。   

1)0XD3指令:读ID4指令,用于读取LCD控制器的ID。因此,同一个代码,可以根据ID的不同,执行不同的LCD驱动初始化,以兼容不同的LCD屏幕。

 

第一行指令先发生指令0XD3,高八位无效(D15~D8),WR为上升沿,写指令。参数1~4为写指令,RD为上升沿,读出四个参数。第一个参数无效(X),第二个参数是0(00H),第三个参数是93(93H),第四个参数是41(41H)。读出9341,驱动ILI9341。

2)0X36指令:存储访问控制指令,控制ILI9341存储器的读写方向,即在连续写GRAM的时候,可以控制GRAM指针的增长方向,从而控制显示方式(读GRAM同此)。

 

先发指令0X36,跟一个参数,参数低8位有效,D7~D5是关键位,这三个位控制GRAM自增方向。

 

3)0X2A指令:列地址指令,在从左到右,从上到下(默认)的扫描方式下,该指令可用于设置横坐标(X坐标)

 

在默认扫描方式时,该指令用于设置X坐标,该指令带有4个参数,实际上是2个坐标值:SC和EC,即列地址的起始值和结束值,SC必须小于等于EC,且0<=SC/EC<=239。一般在设置X坐标的时候,我们只需带两个参数即可,也就是设置SC即可,因为如果EC没有变化,我们只需设置一次即可,从而提高速度。

4)0X2B指令:页地址设置指令,在从左到右,从上到下(默认)扫描方式下,该指令可用于设置纵坐标(Y坐标)

 

在默认扫描方式时,该指令用于设置Y坐标,该指令有4个参数,实际上是2个坐标值:SP和EP,即页地址的起始值和结束值,SP必须小于等于EP,且0<=SP/EP<=319。一般在设置Y坐标的时候,我们只需要带2个参数即可(设置SP),因为如果EP没有变化,我们只需设置一次即可,从而提高速度。

(开窗的时候,SC EC SP EP 都要用到)

5)0X2C指令:写GRAM指令,在发送该指令后,我们便可以往LCD的GRAM里面写如颜色数据了,该指令支持连续写(地址自动递增)

 

在收到指令0X2C之后,有效位宽变为16位,我们可以连续写入LCD GRAM值,而GRAM的地址将根据MY/MX/MV的扫描方向进行自增。例如:假设设置的是从左到右,从上到下的扫描方式,那么设置好起始坐标(通过SC,SP设置)后,每写入一个颜色值,GRAM地址将会自动自增1(SC++),如果碰到EC,则回到SC,同时SP++,一直到坐标:EC,EP结束,其间无需再次设置坐标,从而大大提高写入速度。

6)0X2E指令:读GRAM指令,用于读取ILI9341的显存(GRAM),同时0X2C指令支持连续读(地址自动递增)

 

ILI9341在收到该指令后,第一次输出的是dummy数据(无效),第二次开始读取到的才是有效的GRAM数据(从坐标:SC,SP开始),输出规律为:每个颜色分量占8个位,一次输出两个颜色分量。比如:第一次输出是R1G1,随后的规律是:B1R2—>G2B2—>R3G3—>B3R4—>G4B4—>R5G5以此类推。

  • 7
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值