TFTLCD 显示实验——STM32F103ZE

1、通信接口介绍

1)80并口介绍

8080 并行接口的发明者是 INTEL,该总线也被广泛应用于各类液晶显示器, ALIENTEK OLED 模块也提供了这种接口,使得 MCU 可以快速的访问 OLED

ALIENTEK OLED 模块的 8080 接口方式需要如下一些信号线:
CS: OLED 片选信号。
WR:向 OLED 写入数据。
RD:从 OLED 读取数据。
D[7: 0]: 8 位双向数据线。
RST(RES):硬复位 OLED。
DC:命令/数据标志(0,读写命令; 1,读写数据)。

模块的 8080 并口读/写的过程为:先根据要写入/读取的数据的类型,设置 DC 为高(数据)/低(命令),然后拉低片选,选中芯片,接着我们根据是读数据,还是要写数据置 RD/WR为低,然后:
在 RD 的上升沿, 使数据锁存到数据线(D[7: 0])上
在 WR 的上升沿,使数据写入到 SSD1306 里面;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)4线串行SPI介绍

在这里插入图片描述在这里插入图片描述

2、ILI9341 液晶控制器

1)自带显存

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

2)操作方式

ILI9341 所有的指令都是 8 位的(高 8 位无效),且参数除了读写 GRAM 的时候是 16 位,其他操作参数,都是 8 位的,这个和 ILI9320 等驱动器不一样,必须加以注意。

3)指令介绍

1,ID读取指令0xd3:
在这里插入图片描述2、0X36,这是存储访问控制指令,可以控制 ILI9341 存储器的读写方向,简
单的说,就是在连续写 GRAM 的时候,可以控制 GRAM 指针的增长方向,从而控制显示方式(读 GRAM 也是一样)
在这里插入图片描述3、0X2A,这是列地址设置指令, 在从左到右,从上到下的扫描方式(默认)
下面,该指令用于设置横坐标(x 坐标)
在这里插入图片描述4、0X2B,是页地址设置指令, 在从左到右,从上到下的扫描方式
(默认)下面,该指令用于设置纵坐标(y 坐标)
在这里插入图片描述5、0X2C,该指令是写 GRAM 指令,在发送该指令之后,我们便可以往 LCD
的 GRAM 里面写入颜色数据了,该指令支持连续写
在这里插入图片描述6、0X2E,该指令是读 GRAM 指令,用于读取 ILI9341 的显存(GRAM)
在这里插入图片描述

4)基本使用流程

在这里插入图片描述在这里插入图片描述

3、FMSC-灵活的静态存贮控制器

1)框图
在这里插入图片描述从上图我们可以看出, STM32 的 FSMC 将外部设备分为 3 类: NOR/PSRAM 设备、 NAND设备、 PC 卡设备。他们共用地址数据总线等信号,他们具有不同的 CS 以区分不同的设备

4、可以把 TFTLCD 当成 SRAM 设备用

首先我们了解下外部 SRAM的连接,外部 SRAM 的控制一般有:地址线(如 A0~A18)、数据线(如 D0~D15)、写信号(WE)、读信号(OE)、片选信号(CS),如果 SRAM 支持字节控制,那么还有 UB/LB 信号。而 TFTLCD的信号我们在 18.1.1 节有介绍,包括: RS、D0~D15、 WR、 RD、 CS、 RST 和 BL 等,其中真正在操作 LCD 的时候需要用到的就只有: RS、 D0~D15、 WR、 RD 和 CS。其操作时序和 SRAM的控制完全类似,唯一不同就是 TFTLCD 有 RS 信号,但是没有地址信号。

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

5、STM32 的 FSMC和外部存储器划的映射

STM32 的 FSMC将外部存储器划分为固定大小为 256M 字节的四个存储块,从下图可以看出, FSMC 总共管理 1GB 空间,拥有 4 个存储块(Bank),如图 18.1.2.2 所示:
在这里插入图片描述
图 18.1.2.2 FSMC 存储块地址映像

6、地址匹配

STM32 的 FSMC 存储块 1(Bank1)被分为 4 个区,每个区管理 64M 字节空间,每个区都有独立的寄存器对所连接的存储器进行配置。 Bank1 的 256M 字节空间由 28 根地址线(HADDR[27:0])寻址。这里 HADDR 是内部 AHB 地址 总线 ,其 中 HADDR[25:0] 来自外部存储器地 址FSMC_A[25:0],而 HADDR[26:27]对 4 个区进行寻址。如表 18.1.2.1 所示
在这里插入图片描述在这里插入图片描述在这里插入图片描述

7、同步或异步访问

在这里插入图片描述在这里插入图片描述

8、寄存器介绍

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

9、待补充

  • 12
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值