STM32 LCD的分析

此次我门所分析的是正点原子的4.3寸TFTLCD显示屏

  • 首先我们来观察观察一下TFTLCD的模块接口图

FSMC如何控制LCD分析
ALIENTEK TFTLCD 模块采用 16 位的并方式与外部连接,之所以不采用 8 位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如果用 8 位数据线,就会比 16 位方式慢一倍以上
CS:TFTLCD 片选信号。
WR:向 TFTLCD 写入数据。
RD:从 TFTLCD 读取数据。
D[15:0]:16 位双向数据线。
RST:硬复位 TFTLCD。
RS:命令/数据标志(0,读写命令;1,读写数据)

本次我们只讨论显示,触摸的部分我们下次再详细的分析
所以我们此次只讨论数据引脚和一些信号线。因为STM32F407ZG里面自带了FSMC,所以
我们是通过FSMC控制TFTLCD屏的显示,这样即加快了LCD的显示,而且也会简化程序的
代码。


首先我们还应该知道,TFTLCD的读写时序是类似8080并口的

????写时序
FSMC如何控制LCD分析

????读时序
FSMC如何控制LCD分析
那我们会想为什么FSMC可以驱动LCD呢,那当然是因为FSMC驱动SRAM的时序是和8080并口时序类似的,只需要设置寄存器就可以控制FSMC各个数据线的电平时间和大小,这样我们自己就不需要每次写入数据/指令的时候,把电平又拉低又拉高了,这些动作FSMC都会自动完成,只要设置每次RD的时间就行了,


我门来看看FSMC的读时序
FSMC如何控制LCD分析
是不是发现很类似,
LCD_CS(片选) 对应 FSMC_NEx
LCD _WR(向 TFTLCD 写入数据) 对应 FSMC_NWE
LCD _RD(从 TFTLCD 读取数据) 对应 FSMC_NOE
数据位对应数据位
只是FSMC是数据线和地址线分开的,但是8080并口是统一起来的,但是这不会有太大的影响

所以我门只要通过寄存器调整ADDSET和DATAST的值来满足TFTLCD的时序要求就可以控制TFTLCD了,但是注意的是,我们是把控制TFTLCD当作控制SRAM,FSMC是可以控制很多器件的,控制每个器件的区域,寄存器都是不同的
FSMC如何控制LCD分析
所以我们要使能的是这个区域,并且一个Bank里面FSMC 将外部存储器划分为固定大小为 256M 字节的四个存储块,我们只需要用到4区域
FSMC如何控制LCD分析
所以我们就知道了地址的范围


这就是我们能通过FSMC控制TFTLCD的原理了

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2021-10-14
  • 2022-12-23
  • 2021-04-30
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-23
  • 2022-01-05
  • 2022-01-26
  • 2021-07-05
  • 2021-08-24
相关资源
相似解决方案