嘿~共享我的HX8347的TFT驱动程序~有滚屏功能哦~

2020-01-22 12:16发布

前段时间天买了个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口。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。