TFTLCD时序介绍(ILI9341 8080并口时序)

ILI9341 8080并口

ILI9341是一个常见的TFT LCD显示控制器,用于驱动各种小型和中型尺寸的液晶显示屏。它支持多种分辨率,最常见的是240x320像素。ILI9341控制器具有内置的GRAM(Graphics RAM),可以通过SPI或8位并行接口与微控制器通信。

 

  • 支持多种颜色格式,包括18位/24位色深(262,144种颜色)。
  • 可以通过指令集配置显示参数,如亮度、对比度、色偏等。
  • 支持滚动显示,可以在不更新整个显示内存的情况下滚动屏幕内容。
  • 包括多种刷新率选项,以优化功耗和显示质量。
  • 具有睡眠模式,用于降低功耗。

 

引脚介绍

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

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

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

2.写数据:WR的上升沿,使数据写入到ILI9341里面

并口写时序图

并口读时序图

ILI9341 8080

其芯片的工作流程

数据引脚介绍

模块对外接口采用16口,颜色深度为16位,格式为RGB565,关系如下图:

 

 ILI9341指令格式说明

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

ILI9341的指令很多,这里不一一介绍,仅介绍几个重要的指令,他们是:0XD30X360X2A0X2B0X2C0X2E6条指令。

1

0XD3指令//初始化时确定芯片

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

 

0X36指令//控制扫描方式

该指令为存储访问控制指令,可以控制ILI9341存储器的读写方向,简单的说,就是在连续写GRAM的时候,可以控制GRAM指针的增长方向,从而控制显示方式(读GRAM也是一样)。

0X2A指令//确定接下来数据写入或读取的列的起始地址和结束地址

指令是列地址设置指令,在从左到右,从上到下的扫描方式(默认)下面,该指令用于设置横坐x坐标)

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

        

  1. 向LCD发送0x2A指令。
  2. 发送起始列地址的高位字节。
  3. 发送起始列地址的低位字节。
  4. 发送结束列地址的高位字节。
  5. 发送结束列地址的低位字节

0X2B指令//确定接下来数据写入或读取的列的起始地址和结束地址

该指令是页地址设置指令,在从左到右,从上到下的扫描方式(默认)下面,该指令用于设置纵坐y坐标)

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

0X2C指令//写入颜色数据

该指令是写GRAM指令,在发送该指令之后,我们便可以往LCDGRAM里面写入颜色数据了,该指令支持连续写 (地址自动递增)

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

0X2E指令//读GRAM指令

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

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

 

 

 

  • 16
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用STM32F103ZETB和STM32Cube配置TFT LCD显示屏(如ILI9341),您可以按照以下步骤进行操作: 1. 配置引脚:使用STM32CubeMX工具,打开您的项目。在"Pinout & Configuration"选项卡中,选择合适的引脚用于连接TFT LCD显示屏的控制信号和数据线。根据ILI9341的规格和您的需求,选择相应的引脚并进行配置。 2. 配置时钟:在"Configuration"选项卡中,选择合适的系统时钟源,并进行配置。确保时钟频率与ILI9341显示屏的要求相匹配。 3. 配置SPI接口:在"Configuration"选项卡中,选择"SPIx"(x为SPI模块编号),并进行相应的配置。设置SPI时钟频率、数据位顺序等参数。 4. 配置GPIO:在"Configuration"选项卡中,选择相应的GPIO引脚,用于控制ILI9341显示屏的复位、片选和数据/命令选择等。 5. 配置LCD控制器:在"Configuration"选项卡中,选择"LTDC"(LCD-TFT Display Controller)并进行相应的配置。设置显示屏分辨率、像素格式、时序等参数。 6. 配置ILI9341驱动程序:在"Project"菜单中,选择"Settings",然后选择"Advanced Settings"。在"Middleware"选项卡中,找到"Graphics"并启用它。选择"ILI9341 LCD Controller"并进行相应的配置,包括SPI接口和GPIO引脚。 7. 生成代码:点击"Project"菜单,选择"Generate Code",生成初始化代码。 8. 编写应用程序:在生成的初始化代码基础上,编写您的应用程序。这可能涉及到显示图像、文本、图形等操作。您可以使用STM32Cube提供的相关库函数和API来实现这些功能。 9. 编译和烧录:使用合适的开发环境(如Keil、IAR等)进行编译,并将生成的可执行文件烧录到STM32F103ZETB开发板上。 请注意,具体的配置和编程细节可能会因您使用的TFT LCD显示屏型号和供应商而有所不同。建议参考ILI9341的数据手册和STM32Cube相关文档,以获得更具体的指导和支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值