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

▲驱动流程

01、使用FSMC驱动LCD

关于FSMC,把数据写入相应的地址,FSMC就会把地址从FSMC_A出去,写入的数据会会从FSMC_D发出去。至于片选等信号线都是自动的。读的话,直接读相应的地址,就会拿到改地址上的数据。

FSMC驱动外部SRAM时,外部SRAM的控制一般有:

  • 地址线(如A0~A25)

  • 数据线(如D0~D15)

  • 写信号(WE,即WR)

  • 读信号(OE,即RD)

  • 片选信号(CS)

如果SRAM支持字节控制,那么还有UB/LB信号。

而TFTLCD的信号包括:RS(命令数据标志位)、D0~D15、WR、RD、CS、RST和BL等,其中真正在操作LCD的时候需要用到的就只有:

  • CS

  • WR

  • RS

  • D0~D15

  • RD

其操作时序和SRAM的控制完全类似,唯一不同就是TFTLCD有RS信号,但是没有地址信号。

TFTLCD通过RS信号来决定传送的数据是数据还是命令,本质上可以理解为一个地址信号,比如我们把RS接在A0上面,那么当FSMC控制器写地址0的时候,会使得A0变为0,对TFTLCD来说,就是写命令。而FSMC写地址1的时候,A0将会变为1,对TFTLCD来说,就是写数据了。这样,就把数据和命令区分开了,他们其实就是对应SRAM操作的两个连续地址。当然RS也可以接在其他地址线上。

因此,可以把TFTLCD当成一个SRAM来用,只不过这个SRAM有2个地址,这就是FSMC可以驱动LCD的原理。

02、标准8080接口

8080总线又叫Intel总线,大致来说,Intel总线的控制线有四根,RD写使能,WR读使能,ALE地址锁存,CS片选。

8080中:有RD(read),WR(Write)脚,RD,WR可以同时为高,不能同时为低!!RD为低时表示要从LCD中读出数据在D0-D7脚上,WR为低时表示:将当前D0-D7上的数据写入LCD

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

先根据要写入/读取的数据的类型,设置RS为高(数据)/低(命令),然后拉低片选,选中液晶IC,接着我们根据是读数据,还是要写数据置RD/WR为低,然后:

1.读数据:在RD的上升沿,读取数据线上的数据(D[15:0]);

2.写数据:在WR的上升沿,使数据写入到液晶IC里面;

▲8080并口写时序

▲8080并口读时序

在NXP的UsingFlexIO to Drive 8080 Bus Interface LCDModule文档中同样也提到了8080接口(P6),我找到的介绍8080接口的官方文档,就只有NXP这个文档。文档下载链接见问末尾。

▲写时序

▲读时序

03、使用FSMC驱动8080接口

▲读时序

▲写时序

04、颜色模式

4.1RGB565

每个像素用16比特位表示,占2个字节,RGB分量分别使用5位、6位、5位

4.1RGB888

每个像素用8比特位表示,占1个字节,注意:在内存中RGB各分量的排列顺序为:BGRBGR BGR ......

点击查看本文所在的专辑,STM32F207教程

文档下载链接:

链接:https://pan.baidu.com/s/1oYThPiVnc-_WSAyVy_vG2Q   提取码:i4vu

最新文章

  1. Docker中images无法使用apt-get update解决方案
  2. 深入理解DOM节点类型第四篇——文档片段节点DocumentFragment
  3. 《项目经验》--后台一般处理程序向前台JS文件传递JSON,JS解析JSON,将数据显示在界面--显示在DropDownList 或 显示在动态创建的table中
  4. PHP之SQL防注入代码(360提供)
  5. iOS中SQLite知识点总结1
  6. theano中的logisticregression代码学习
  7. [LeetCode]题解(python):069-Sqrt(x)
  8. [图形学] 习题8.12 NLN二维线段裁剪算法实现
  9. Tomcat会话保持之session server
  10. Java基础总结--多线程总结1
  11. Map 接口简明
  12. arc 097 E - Sorted and Sorted
  13. JAVA 8 主要新特性 ----------------(一)总纲
  14. Luogu 4294 [WC2008]游览计划 | 斯坦纳树
  15. kettle学习笔记(四)——kettle输入步骤
  16. vue基础项目安装教程
  17. 解决 php7下 igbinary_unserialize_ref: invalid reference 的bug
  18. 网络编程----粘包以及粘包问题的解决、FTP上传
  19. php接收post过来的json数据
  20. poj1961 Period kmp解决找字符串的最小循环节

热门文章

  1. 多任务-python实现-进程,协程,线程总结(2.1.16)
  2. CSS—— div+css
  3. Redis 6.0 多线程性能测试结果及分析
  4. java面试 题
  5. java数组之system.arrayCopy
  6. 将WCF迁移到gRPC
  7. mysql远程访问被拒绝问题
  8. Npoi XWPF Word 导出时插入图片无法显示 bug 完美解决
  9. Face_to_object_design
  10. Docker-Docker部署SpringBoot项目