|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2012-1-6 02:04:11
|
显示全部楼层
下面小弟聊一下整个制作过程和一些应该注意的地方
控制器就不说了
首先要了解的是TFT彩屏显示模块驱动;程序在3楼可以下载
TFT彩屏的驱动时序,如何写如何读这些省略掉,值得重点注意的几个寄存器:
0x0003进入模式(刷屏方式)
/-----------------------------------------------------------------------------------
AM:控制GRAM更新方向的控制位
AM = 0: 在水平方向更新地址
AM = 1: 在垂直方向更新地址
I/D1,I/D0:当更新显示区域的一个像素点的时候,控制AC是增加1还是减少1
例如I/D1,I/D0=00时,水平方向递增更新地址,垂直方向递增更新地址
…………手册第55页。
大家可以各种模式都试玩一下,这样会更直观。
ORG : 当一个窗口的地址区域确定以后,根据上面I/D的设置,来移动原始地址。当高速写窗口地址域时,这个功能将被使能。
ORG = 0: 原始地址是不移动的。这种情况下,是通过指定地址来启动写操作的, 这个地址是根据窗口显示区域的GRAM的地址表。
ORG = 1:原始地址是更加I/D的设置相应的移动的。
注意:1、当ORG =1 的时候,设置R20H,R21H,的原始地址的时候,只能设置0x0000
2、在RAM读操作时,要保证ORG = 0;
/-----------------------------------------------------------------------------------
0x0004改变大小
/-----------------------------------------------------------------------------------
这个寄存器可以设置图片以原始象素、二分之一、四分之一显示
RSZ1,RSZ0:
![](http://cache.amobbs.com/bbs_upload782111/files_50/ourdev_710649XGG1BY.jpg)
(原文件名:0x0004.jpg)
当以二分之一显示图片时,如果图片水平象素除2余数不为0时须设置RCH1,RCH0=余数
如果垂直象素除2余数不为0时须设置RCV1,RCV0=余数
当以四分之一显示图片时,如果图片水平象素除4余数不为0时须设置RCH1,RCH0=余数
如果垂直象素除4余数不为0时须设置RCV1,RCV0=余数
/-----------------------------------------------------------------------------------
0X0007显示控制
/-----------------------------------------------------------------------------------
当我们的控制器运行速度不是很快时,切换图片时可以看到明显的刷屏,
![](http://cache.amobbs.com/bbs_upload782111/files_50/ourdev_710651XG3JZB.jpg)
(原文件名:Y~UVUDZEXTLI$}HQ[{MVZ6G.jpg)
我们可以在写图片数据前先设置(0X0007)=0X0130隐藏显示,等图片数据全部写完再次设置(0X0007)=0X0133显示,这样就可以非常快的显示整张图片,不过在写数据时屏显示的是一种灰白色,呵呵,我个人不喜欢这种方式。
/-----------------------------------------------------------------------------------
0x000C RGB显示接口控制
/-----------------------------------------------------------------------------------
![](http://cache.amobbs.com/bbs_upload782111/files_50/ourdev_710650LR1L6H.jpg)
(原文件名:R_05](60E}4{3XV`WZJ]%}W.jpg)
可以把接口设置成18位、16位、6位,好像现在一般都是使用16位。
/-----------------------------------------------------------------------------------
0X0050,0X0051,0X0052,0X0053,0X0020,0X0021,0X0022
/-----------------------------------------------------------------------------------
0X0050:水平更新起始地址
0x0051:水平更新结束地址(不能超过屏的水平象素值)
0X0052:垂直更新起始地址
0X0053:垂直更新结束地址(不能超过屏的垂直象素值)
上面四个寄存器主要用来设置一个窗口的
0X0020:水平写数据起始地址
0X0021:垂直写数据起始地址
这两个确定了一个起始坐标,但必须在所设置的窗口内
0X0022:存储器写
在设置好起始坐后必须写命令0X0022.
/-----------------------------------------------------------------------------------
了解了上面寄存器,呵呵,那才算得上这个屏玩的有点意思了。其实里面还有很多的功能,大家可以一起玩玩,很有意思的哦。
夜深了,得去梦了。
点击此处下载 ourdev_710654T9OZ9V.pdf(文件大小:1.17M) (原文件名:ILI9325手册.pdf) |
|