笔记9:STM32F407之TFTLCD相关原理介绍

一. 基本概念
1.三种显示器简介
(1) LCD: 液晶显示器,简称 LCD(Liquid Crystal Display),液晶是一种介于固体和液体之间的物质,本身不发光,因此在制作显示屏时需要背光源.
(2). TFT-LCD:TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为: Thin Film Transistor-Liquid CrystalDisplay。 TFT-LCD 与无源 TN-LCD、 STN-LCD 的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 TFT-LCD 也被叫做真彩液晶显示器。
(2) LED: LED点阵显示器,LED 点阵彩色显示器的单个像素点内
包含红绿蓝三色 LED 灯,我们见的最多的就是滚动的那种灯牌,每一个LED就是一个像素点(像素概念稍后介绍),这样会导致屏幕像素密度低,肉眼都能够看见每一个像素点。
LED灯牌
(3) OLED:与LED不同的是OLED是采用的像素单元是“有机发光二极管” (Organic Light Emitting Diode),所以像素密度比普通 LED 点阵显示器高得多,由于本身发光,因此不需要背光源。
2. 常见名词
(1) 像素
像素是组成图像的最基本单元要素,显示器的像素指它成像最小点.
(2) 分辨率
一些嵌入式设备的显示器常常以“行像素值 x 列像素值”表示屏幕的分辨率。如分辨率 800x480 表示该显示器的每一行有 800 个像素点,每一列有 480 个像素点,也可理解为有 800 列, 480 行。
(3) 色彩深度
色彩深度指显示器的每个像素点能表示多少种颜色,一般用“位” (bit)来表示。如单色屏的每个像素点能表示亮或灭两种状态(即实际上能显示 2 种颜色),用 1 个数据位就可以表示像素点的所有状态,所以它的色彩深度为 1bit,其它常见的显示屏色深为16bit、 24bit。
常见的有RGB565,和RGB888两种格式:
RGB888 表示红色用8bit表示(即0-255),绿色也是用8bit表示(0-255),蓝色也是8bit,RGB888存储时就需要3个字节
RGB565 表示红色用5bit表示(即0-31),绿色用6bit表示(0-63),蓝色用5bit表示,RGB565 存储时就需要2个字节
(3) 显示器尺寸
显示器的大小一般以英寸表示,如 5 英寸、 21 英寸、 24 英寸等,这个长度是指屏幕对角线的长度, 通过显示器的对角线长度及分辨率(就相当于长宽比)可确定显示器的实际长宽尺寸。
(4) 点距
点距指两个相邻像素点之间的距离, 它会影响画质的细腻度及观看距离,相同尺寸的屏幕,若分辨率越高,则点距越小,画质越细腻。
(5)帧
我们知道,动态画面都是由许多静态画面组成,那么每一个静态画面就叫做一帧。
(6)显存
液晶屏中的每个像素点都是数据,在实际应用中需要把每个像素点的数据缓存起来,再传输给液晶屏,一般会使用 SRAM 或 SDRAM 性质的存储器,而这些专门用于存储显示数据的存储器,则被称为显存。
二. 液晶控制原理
1.通常的显示屏由两种:PCB上带有液晶控制器的(外部可以看到)/芯片内部带有液晶控制器的(外部看不到)
在这里插入图片描述
2.8080并行接口模式连接
2.1 8086接口方式所需要的信号线:
CS: OLED 片选信号。
WR:向 OLED 写入数据。
RD:从 OLED 读取数据。
D[7: 0]: 8 位双向数据线。
RST(RES):硬复位 OLED。
DC:命令/数据标志(0,读写命令; 1,读写数据)。
2.2 8086并口读写的过程及时序图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(SSD1306是一种驱动芯片)

2.3 读显存的时序图分析
在 8080 方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命(Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始,才是我们真正要读的数据。
在这里插入图片描述
三. ILI9341 液晶控制器介绍(自带显存
3.1 ILI9341简介:ILI9341 液晶控制器自带显存,其显存总大小为 172800(24032018/8),即 18 位模式(26万色)下的显存量。在 16 位模式下, ILI9341 采用 RGB565 格式存储颜色数据。
18位9341总线,16位MCU数据,16位 LCD GRAM三者的对应关系
在这里插入图片描述
在LCD模块中,D12和D0位没有用到,其线也就没有引出来。特别注意 ILI9341 所有的指令都是 8 位的(高 8 位无效),且参数除了读写 GRAM 的时候是 16 位,其他操作参数,都是 8 位的,这个和 ILI9320 等驱动器不一样。
3.2 ILI9341液晶控制器重要指令

在这里插入图片描述
0XD3:从图中可以看出,指令后面跟着四个参数,参数1无效,参数2作用不大,参数3和参数4判别所用的 LCD 驱动器是什么型号。
在这里插入图片描述
0X36:从图中可以看出,指令后面只跟了一个参数,通过对D5-D7位的控制,便可控制整个 ILI9341 的全部扫描方向。
在这里插入图片描述
在这里插入图片描述
0X2A:SC 和 EC,即列地址的起始坐标值和结束坐标值(X值),SC必须小于EC,并且0≤SC/EC≤行分辨率
在这里插入图片描述
0X2B:SP和EP,即为页地址的起始值和结束值(Y值),SP必须小于EP,且0≤SP/EP≤列分辨率
在这里插入图片描述
0X2C:写GRAM指令,在收到指令 0X2C 之后,数据有效位宽变为 16 位,我们可以连续写入 LCDGRAM 值,而 GRAM 的地址将根据 MY/MX/MV 设置的扫描方向进行自增。
在这里插入图片描述
0X2E:该指令是读 GRAM 指令,用于读取 ILI9341 的显存(GRAM)。输出规律为:每个颜色分量占 8 个位,一次输出 2 个颜色分量。比如:第一次输出是 R1G1,随后的规律为: B1R2→G2B2→R3G3→B3R4→G4B4→R5G5… 以此类推。若想要读一个像素点的数值,到参数3就读完了。
在这里插入图片描述
四.TFTLCD常见使用流程
在这里插入图片描述
叠加方式与非叠加方式
叠加方式保留背景色,非叠加方式删除 背景色。

猜你喜欢

转载自blog.csdn.net/weixin_46468790/article/details/107369207