打印
[应用相关]

STM32 驱动彩屏

[复制链接]
3294|44
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LCD  屏 简介
TFT-LCD 又叫做薄膜晶体管液晶显示器,常用的液晶屏接口很多种,8 位、 9 位、16
位、18 位都有。而常用的通信模式呢,主要有 6800 模式和 8080 模式两种,今天呢,我
们来讲的是 8080 模式。

沙发
chenqiang10|  楼主 | 2018-5-29 17:25 | 只看该作者
大家接触过 LCD1602 或者 LCD12864 等,那么就会发现 8080 模式的时序呢,
其实跟 LCD1602 或者 LCD12864 的读写时序是差不多的。8080 接口有 5 条基本的控制
线和多条数据线,数据线的数量主要看液晶屏使用的是几位模式,有 8 根、9 根、16 根、
18 根四种类型。

使用特权

评论回复
板凳
chenqiang10|  楼主 | 2018-5-29 17:26 | 只看该作者
功能如下:

使用特权

评论回复
地板
chenqiang10|  楼主 | 2018-5-29 17:27 | 只看该作者
8080 接口模式的时序:

使用特权

评论回复
5
chenqiang10|  楼主 | 2018-5-29 17:28 | 只看该作者
在 WR 跳变为低电平之后,液晶屏开始读取总线上面的数据。如果使用 IO 口模拟
写入的时候,可以先在总线上面写入数据,然后在跳变 WR,以保证当读取的时候,总线
上面的数据是稳定的。

使用特权

评论回复
6
chenqiang10|  楼主 | 2018-5-29 17:29 | 只看该作者
在 RD 跳变为低电平之后,液晶屏放置数据到总线上面。从上图,我们就可以很清
晰的看得出,液晶屏的读写时序了,大家操作的时候,可以使用单片机 IO 口模拟它的时
序进行操作。不过我们开发板上面的单片机自带有 FSMC 模块,我们可以直接使用 FSMC
模块来操作液晶屏,接下来我们给大家介绍一下 FSMC 模块。

使用特权

评论回复
7
chenqiang10|  楼主 | 2018-5-29 17:30 | 只看该作者
FSMC  模拟 LCD  彩屏 8080  模式
引脚数在 100 脚以上的 STM32F103 芯片都带有 FSMC 的接口,而什么是 FSMC 呢?
FSMC 即灵活的静态存储控制器,能够与同步或异步存储器和 16 位 PC 存储卡接口,
FSMC 的接口支持包括 SRAM、NAND FLASH、NOR FLASH、 PSRAM 等存储器。说白
了呢,就是可以当操作 SRAM、NAND FLASH、NOR FLASH 和 PSRAM 等存储器的时
候,我们不必自己操作 IO 口模拟这些存储器的操作时序了,使用 FSMC 模块可以直接帮
我们读写这些存储器。

使用特权

评论回复
8
chenqiang10|  楼主 | 2018-5-29 17:30 | 只看该作者
LCD 液晶屏的信号线主要有:
1) CS:用于片选的选择。
2) RS:用于选择命令或者数据。
3) WR:写使能。
4) RD:读使能。
5) RESET:复位端。

使用特权

评论回复
9
chenqiang10|  楼主 | 2018-5-29 17:57 | 只看该作者
NOR FLASH 主要使用的信号线主要有:

使用特权

评论回复
10
chenqiang10|  楼主 | 2018-5-29 18:00 | 只看该作者
液晶屏的原理图

使用特权

评论回复
11
mintspring| | 2018-5-29 23:27 | 只看该作者
总结的真好,学到了。

使用特权

评论回复
12
azadaqdc| | 2018-5-30 12:00 | 只看该作者
不错

使用特权

评论回复
13
chenqiang10|  楼主 | 2018-5-30 17:54 | 只看该作者
mintspring 发表于 2018-5-29 23:27
总结的真好,学到了。

还没结束,正在更新中。

使用特权

评论回复
14
chenqiang10|  楼主 | 2018-5-30 17:56 | 只看该作者
上面的 FSMC 如何能够模拟 LCD 彩屏 8080 模式之后,我们对照,我们开
发板上面的彩屏接口,就可以很好的理解了。我们这里使用 FSMC_NE4 作片选 CS,使用
FSMC_A10(即地址线 10)作数据命令选择 RS。

使用特权

评论回复
15
chenqiang10|  楼主 | 2018-5-30 17:57 | 只看该作者
从 FSMC 的角度看,可以把外部存储器划分为固定大小为 256M 字节的四个存储块,如下图:


使用特权

评论回复
16
chenqiang10|  楼主 | 2018-5-30 17:58 | 只看该作者
也就是说,当我们操作外部存储器的时候,只要操作单片机中对应的地址,那么 FSMC
模块,就可以自动帮我们操作外部存储器,相当于把外部存储器挂在了单片机的地址总线上
面了。

使用特权

评论回复
17
chenqiang10|  楼主 | 2018-5-30 17:58 | 只看该作者
而我们这里使用的是 NOR 模式来模拟 LCD 液晶屏的 8080 时序,而在 NOR/PSRAM
中,有四块存储块,我们使用的是 FSMC_NE4,所以使用的是第四块存储块,就是地址从
0x6C000000 到 0x6FFFFFFF 的存储块。现在我们使用地址线 A10 来作数据命令选择端
RS,那么当我们要写入数据的时候,地址线 A10 就要输出为 1,无论地址是什么,只要地
址线 A10 输出为 1,就可以了;而当我们要写入命令的时候,正好相反,地址线 A10 输
出为 0。

使用特权

评论回复
18
chenqiang10|  楼主 | 2018-5-30 18:03 | 只看该作者
FSMC_NORSRAMInit() 函数:
我 们 使 用 的 是 NORSRAM 模 式 , 所 以 我 们 使 用 的 初 始 化 函 数 是
FSMC_NORSRAMInit()函数。
这 个 函 数 有 一 个 输 入 参 数 , 这 个 输 入 参 数 是 一 个
FSMC_NORSRAMInitTypeDef 结构体,这个结构体很复杂,它一共有 15 个成员

使用特权

评论回复
19
chenqiang10|  楼主 | 2018-5-30 18:03 | 只看该作者
1) FSMC_Bank:选择你要使用的 bank,我们使用的是 NOR 模式的 FSMC_NE4,也就
是第 1 个 bank 的第 4 个存储块,所以这里我们设置为: FSMC_Bank1_NORSRAM4。

使用特权

评论回复
20
chenqiang10|  楼主 | 2018-5-30 18:04 | 只看该作者
2) FSMC_MemoryType:选择你要使用的内存类型,我们使用的是 NOR FLASH 或 者
SRAM 都 可 以 , 我 们 选 择 设 置 为 : FSMC_MemoryType_SRAM。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

39

主题

940

帖子

1

粉丝