打印
[STM32F4]

【正点原子探索者STM32F407开发板例程】第18章LCD显示实验-FSMC

[复制链接]
11370|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangyang86|  楼主 | 2014-12-16 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第十八章 TFT LCD显示实验

实验13 TFT LCD显示实验.zip (515.88 KB)

第十八章 TFTLCD显示实验-STM32F4开发指南-正点原子探索者STM32开发板.pdf.pdf (2.25 MB)


1.硬件平台:正点原子探索者STM32F407开发板2.软件平台:MDK5.13.固件库版本:V1.4.0

上一章我们介绍了OLED模块及其显示,但是该模块只能显示单色/双色,不能显示彩色,而且尺寸也较小。本章我们将介绍ALIENTEK 2.8寸TFT LCD模块,该模块采用TFTLCD面板,可以显示16位色的真彩图片。在本章中,我们将使用探索者STM32F4开发板上的LCD接口,来点亮TFTLCD,并实现ASCII字符和彩色的显示等功能,并在串口打印LCD控制器ID,同时在LCD上面显示。本章分为如下几个部分:
18.1 TFTLCD & FSMC简介
18.2 硬件设计
18.3 软件设计
18.4 下载验证

18.1 TFTLCD&FSMC简介
本章我们将通过STM32F4的FSMC接口来控制TFTLCD的显示,所以本节分为两个部分,分别介绍TFTLCD和FSMC。
18.1.1 TFTLCD简介
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。
上一章介绍了OLED模块,本章,我们给大家介绍ALIENTEK TFTLCD模块,该模块有如下特点:
1,2.4’/2.8’/3.5’/4.3’/7’ 5种大小的屏幕可选。
2,320×240的分辨率(3.5’分辨率为:320*480,4.3’和7’分辨率为:800*480)。
3,16位真彩显示。
4,自带触摸屏,可以用来作为控制输入。
本章,我们以2.8寸(其他3.5寸/4.3寸等LCD方法类似,请参考2.8的即可)的ALIENTEK TFTLCD模块为例介绍,该模块支持65K色显示,显示分辨率为320×240,接口为16位的80并口,自带触摸屏。
该模块的外观图如图18.1.1.1所示:



                 图18.1.1.1 ALIENTEK 2.8寸TFTLCD外观图
       模块原理图如图18.1.1.2所示:
图18.1.1.2  ALIENTEK 2.8寸TFTLCD模块原理图
TFTLCD模块采用2*17的2.54公排针与外部连接,接口定义如图18.1.1.3所示:

图18.1.1.3  ALIENTEK 2.8寸TFTLCD模块接口图
从图18.1.1.3可以看出,ALIENTEK TFTLCD模块采用16位的并方式与外部连接,之所以不采用8位的方式,是因为彩屏的数据量比较大,尤其在显示图片的时候,如果用8位数据线,就会比16位方式慢一倍以上,我们当然希望速度越快越好,所以我们选择16位的接口。图18.1.1.3还列出了触摸屏芯片的接口,关于触摸屏本章我们不多介绍,后面的章节会有详细的介绍。该模块的80并口有如下一些信号线:
       CS:TFTLCD片选信号。
       WR:向TFTLCD写入数据。
       RD:从TFTLCD读取数据。
       D[15:0]:16位双向数据线。
       RST:硬复位TFTLCD。
       RS:命令/数据标志(0,读写命令;1,读写数据)。
80并口在上一节我们已经有详细的介绍了,这里我们就不再介绍,需要说明的是,TFTLCD模块的RST信号线是直接接到STM32F4的复位脚上,并不由软件控制,这样可以省下来一个IO口。另外我们还需要一个背光控制线来控制TFTLCD的背光。所以,我们总共需要的IO口数目为21个。这里还需要注意,我们标注的DB1~DB8,DB10~DB17,是相对于LCD控制IC标注的,实际上大家可以把他们就等同于D0~D15,这样理解起来就比较简单一点。
ALIENTEK提供的2.8寸TFTLCD模块,其驱动芯片有很多种类型,比如有:ILI9341/ILI9325/RM68042/RM68021/ILI9320/ILI9328/LGDP4531/LGDP4535/SPFD5408/SSD1289/1505/B505/C505/NT35310/NT35510等(具体的型号,大家可以通过下载本章实验代码,通过串口或者LCD显示查看),这里我们仅以ILI9341控制器为例进行介绍,其他的控制基本都类似,我们就不详细阐述了。
ILI9341液晶控制器自带显存,其显存总大小为172800(240*320*18/8),即18位模式(26万色)下的显存量。在16位模式下,ILI9341采用RGB565格式存储颜色数据,此时ILI9341的18位数据线与MCU的16位数据线以及LCD GRAM的对应关系如图18.1.1.4所示:
图18.1.1.4  16位数据与显存对应关系图
从图中可以看出,ILI9341在16位模式下面,数据线有用的是:D17~D13和D11~D1,D0和D12没有用到,实际上在我们LCD模块里面,ILI9341的D0和D12压根就没有引出来,这样,ILI9341的D17~D13和D11~D1对应MCU的D15~D0。
这样MCU的16位数据,最低5位代表蓝色,中间6位为绿色,最高5位为红色。数值越大,表示该颜色越深。另外,特别注意ILI9341所有的指令都是8位的(高8位无效),且参数除了读写GRAM的时候是16位,其他操作参数,都是8位的,这个和ILI9320等驱动器不一样,必须加以注意。
接下来,我们介绍一下ILI9341的几个重要命令,因为ILI9341的命令很多,我们这里就不全部介绍了,有兴趣的大家可以找到ILI9341的datasheet看看。里面对这些命令有详细的介绍。我们将介绍:0XD3,0X36,0X2A,0X2B,0X2C,0X2E等6条指令。
首先来看指令:0XD3,这个是读ID4指令,用于读取LCD控制器的ID,该指令如表18.1.1.1所示:
顺序
控制
各位描述
HEX
RS
RD
WR
D15~D8
D7
D6
D5
D4
D3
D2
D1
D0
指令
0
1
XX
1
1
0
1
0
0
1
1
D3H
参数1
1
1
XX
X
X
X
X
X
X
X
X
X
参数2
1
1
XX
0
0
0
0
0
0
0
0
00H
参数3
1
1
XX
1
0
0
1
0
0
1
1
93H
参数4
1
1
XX
0
1
0
0
0
0
0
1
41H

表 18.1.1.1 0XD3指令描述
       从上表可以看出,0XD3指令后面跟了4个参数,最后2个参数,读出来是0X93和0X41,刚好是我们控制器ILI9341的数字部分,从而,通过该指令,即可判别所用的LCD驱动器是什么型号,这样,我们的代码,就可以根据控制器的型号去执行对应驱动IC的初始化代码,从而兼容不同驱动IC的屏,使得一个代码支持多款LCD。
       接下来看指令:0X36,这是存储访问控制指令,可以控制ILI9341存储器的读写方向,简单的说,就是在连续写GRAM的时候,可以控制GRAM指针的增长方向,从而控制显示方式(读GRAM也是一样)。该指令如表18.1.1.2所示:
顺序
控制
各位描述
HEX
RS
RD
WR
D15~D8
D7
D6
D5
D4
D3
D2
D1
D0
指令
0
1
XX
0
0
1
1
0
1
1
0
36H
参数
1
1
XX
MY
MX
MV
ML
BGR
MH
0
0
0

表 18.1.1.2 0X36指令描述
       从上表可以看出,0X36指令后面,紧跟一个参数,这里我们主要关注:MY、MX、MV这三个位,通过这三个位的设置,我们可以控制整个ILI9341的全部扫描方向,如表18.1.1.3所示:
控制位
效果
LCD扫描方向(GRAM自增方式)
MY
MX
MV
0
0
0
从左到右,从上到下
1
0
0
从左到右,从下到上
0
1
0
从右到左,从上到下
1
1
0
从右到左,从下到上
0
0
1
从上到下,从左到右
0
1
1
从上到下,从右到左
1
0
1
从下到上,从左到右
1
1
1
从下到上,从右到左

表18.1.1.3 MY、MX、MV设置与LCD扫描方向关系表




后面内容由于篇幅问题,请直接下载附件的pdf文档查看。

实验详细手册和源码下载地址:http://www.openedv.com/posts/list/41586.htm


正点原子探索者STM32F407开发板购买地址:http://item.taobao.com/item.htm?id=41855882779
  






沙发
mmuuss586| | 2014-12-16 21:05 | 只看该作者

F4的FSMC和F1差不多;

使用特权

评论回复
板凳
node| | 2014-12-17 09:24 | 只看该作者
软件平台:MDK5.13出来了????看官网那个最新的那个是5.12版本

使用特权

评论回复
地板
小班儿| | 2014-12-17 09:35 | 只看该作者
支持楼主分享!

使用特权

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

本版积分规则

个人签名:正点原子STM32开发板购买单击这里

80

主题

916

帖子

51

粉丝