前段时间天买了个3.2寸的TFT屏,控制器是HX8347-A的
店家给的资料不全,调试的时候也出了问题,然后我就有了怨念,还在坛子里发了下牢骚。。。
经过苦苦搜索,终于找到了控制器的datasheet了,内牛满面啊。。。
(网上比较多见好像的是 HX8347-G(N) HX8347-G(T)的,应该是版本比较新吧,虽然大同小异,
但是寄存器多少是有点区别的,所以有些初始化命令对不上)
关于HX8347-A的资料是在这个帖子里找到的:(2楼)
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=4644372&bbs_page_no=1&search_mode=1&search_text=hx8347&bbs_id=9999
有了资料,就开始写程序咯,初始化代码是卖家配套来的,对配套的程序改动不大,只是看着函数名字定义得很不爽,我就把函数名都给改了。。。
然后自己看着datasheet加上了读显存的功能,不过还没发现使用的需求,也只是写了最底层的读函数而已,利用这个读可以在输出文本的时候设置成
透明的背景,这样文本就直接在原来的基础上显示,而不会把不显示字的地方擦除。
看着看着就发现HX8347有移屏的功能,然后我就给程序加了个移屏的功能,呵呵,要是用来做电子书的话还是挺爽的,可以弥补51的速度
可惜的是只能纵向移屏,而且经过调试我也只能做到全屏滚动,局部的好像不行,以后软件设置坐标的时候也要根据移屏来调整。。。郁闷一下,
还是写了程序,发现效果还是可以让我这个菜鸟小小的得意一下的~呵呵~上个视频
(原文件名:20120224556.jpg)
点击此处下载
ourdev_721986Y3K8S6.zip(文件大小:4.49M) (原文件名:20120224003.zip)
然后是我的程序代码:
点击此处下载
ourdev_721987ZC6NI8.zip(文件大小:63K) (原文件名:STC12.zip)
代码都在这个模块里:
这个TFT屏用2.8V供电的(我用3.3V串个二极管。。。),引脚定义在程序里也有,我把他帖出来:
这些脚都是直接和5V单片机相连的
//////////////////////下面是物理连接定义区//////////////////////
//{
//相关的管脚定义
sbit LCD_CS = P3^5; //片选
sbit LCD_RS = P3^7; //数据/命令切换
sbit LCD_WR = P3^6; //写控制
sbit LCD_RST = P3^4; //复位
sbit LCD_RD = P3^3; //读控制,注意就算不用也不能悬空
//数据端口
#define LPort P0 //高8位数据口
#define HPort P2 //低8位数据口
//}
//////////////////////上面是物理连接定义区//////////////////////
买来的屏有触摸功能的,还没搞,在我上面给的链接的资料里也有配套程序。。。如果有时间,搞好了我继续在这个帖子里完善
最后说一下调这个屏遇到的一点经验:
1. RD脚不可以浮空!如果浮空,会出现混乱。
2. 调试的时候有时候屏没反应,这个问题搞了我好几天,气得我。。。都快想把这屏给扔了。。。(屏是最贵的说。。。扔不起。。。)
后来换到我以前做的最小系统板上调试就没问题了,原来是受到我的开发板上其他器件的影响,嗯,调试
新器件最好不要和其它元件共用IO口。
一周热门 更多>