STM32_菜鸟学习记录_TFTLCD屏学习记录

1.TFTLCD 简介
TFT-LCD 即薄膜晶体管液晶显示器。TFT-LCD与无源 TN-LCD、 STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管( TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 TFT-LCD 也被叫做真彩液晶显示器。ALIENTEK TFTLCD 模块采用 16 位的并方式与外部连接。
学习环境:正点原子STM32F407
模块80并口的信号线:
CS:TFTLCD的片选信号
WR:TFTLCD写入数据
RD:从TFTLCD读取数据
D[15:0]:16位双向数据
RST:硬件复位TFTLCD,跟STM32的复位脚连接在一起
RS:命令/数据标志 (0:读写命令; 1:读写数据)。
总共有21个IO口,DB1-DB8,DB10-DB17,是相对LCD控制IC标注的。

3.ILI9341 控制器介绍

ILI9341 液晶控制器自带显存,其显存总大小为 172800( 24032018/8),即 18 位模式( 26万色)下的显存量。在 16 位模式下, ILI9341 采用 RGB565 格式存储颜色数据,此时 ILI9341的 18 位数据线与 MCU 的 16 位数据线以及 LCD GRAM 的对应关系如图:
在这里插入图片描述

分别对应着MCU的 D0-D15;

记录LCD的指令:
0XD3,这是读取ID的指令,发出0XD3会受到4个参数,最后两个是代表控制器的数字部分
0X36: 主要关注: MY、 MX、 MV 这三个位,通过这三个位的设置,可以控制整个 ILI9341 的全部扫描方向。
在这里插入图片描述
3)0X2A
这是列地址设置指令, 在从左到右,从上到下的扫描方式(默认)下面,该指令用于设置横坐标( x 坐标),该指令如表 :

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

(4)0X2B

是页地址设置指令, 在从左到右,从上到下的扫描方(默认)下面,该指令用于设置纵坐标( y 坐标)。该指令如表:
在这里插入图片描述
在默认扫描方式时,该指令用于设置 y 坐标,该指令带有 4 个参数,实际上是 2 个坐标值:
SP 和 EP,即页地址的起始值和结束值, SP 必须小于等于 EP,且 0≤SP/EP≤319。一般在设置
y 坐标的时候,我们只需要带 2 个参数即可,也就是设置 SP 即可,因为如果 EP 没有变化,我
们只需要设置一次即可(在初始化 ILI9341 的时候设置),从而提高速度

(5) 0X2C,该指令是写 GRAM 指令,在发送该指令之后,我们便可以往 LCD
的 GRAM 里面写入颜色数据了,该指令支持连续写,指令描述如表 在这里插入图片描述
(6)0X2E

该指令是读 GRAM 指令,用于读取 ILI9341 的显存( GRAM),输出情况如表:

该指令用于读取 GRAM,如表 所示,ILI9341在收到该指令后,第一次输出的是 dummy数据,也就是无效的数据,第二次开始,读取到的才是有效的 GRAM 数据(从坐标: SC, SP开始),输出规律为:每个颜色分量占 8 个位,一次输出 2 个颜色分量。

比如:在这里插入图片描述

第一次输出是R1G1,随后的规律为:B1R2G2B2R3G3B3R4G4B4R5G5… 以此类推。如果我们只需要读取一个点的颜色值,那么只需要接收到参数 3 即可,如果要连续读取(利用 GRAM 地址自增),那么就按照上述规律去接收颜色数据。
5.TFTLCD 模块的使用流程

在这里插入图片描述

画点流程就是:设置坐标 -> 写 GRAM 指令 -> 写入颜色数据,然后在 LCD 上面,我们就可以看到对应的点显示我们写入的颜色了
读点流程为:设置坐标 -> 读 GRAM 指令 -> 读取颜色数据,这样就可以获取到对应点的颜色数据了。

猜你喜欢

转载自blog.csdn.net/qq_35989861/article/details/84164829
今日推荐