开局一张图,过程全靠编。。。
玩单片机开发板的正确方式是:跟MCU最小系统-》打印Helloworld-》点LCD屏-》扔进抽屉吃灰。。。
在一个偶然的契机需要为F133(全志开发板)移植LCD级的应用,需要先确认显示驱动;了解到MCUFRIEND_kbv开源项目,
(:感谢开源,感谢开源,感谢开源。。。
但其是基于arduino开发;遂祭出了那块吃灰中的mega2560。(当然这个开源项目UNO也可以跑,但我的UNO已经成砖;基本上可以确定它短时间是不能回归了。
很久没用arduino了,目前已经更新到2.2.1了。界面比之前做得更精细化了;
要跑MCUFRIEND_kbv开源项目,需要在arduinoIDE里面下载安装好几个库:
1)是MCUFRIEND_kbv本身;
2)是其关联的Adafruit-GFX库(及其调用的Adafruit_BusIO库)
不得不说arduino的生态已经做得很出色(linux和windows均已经非常成熟),直接在IDE左边的面板一键完成下载并自行安装到arduino的软件默认目录;
剩下就是直接打开对应的example进行编译下载就行。一气呵成
因为我这款3.2"屏幕不支持8bit模式(LCD模组的PS[3:0]未引出),所以不能配置。只能进行16bit的操作;
安装完成后,可以看到好多相关的测试例程已经在IDE的工程目录中了(需要重启IDE);
我用的是GLUE_Demo_320x240这个例程修改的,原库文件需要修改的几个地方:
1。MCUFRIEND_kbv.cpp中反注释掉1289的宏支持 #define SUPPORT_1289 ;
2。utility目录下mcufriend_shield.h增加对特殊板型的引用,因为我没有标准的arduino扩展接口板,全程都是杜邦线操作,
文件中反注释掉 #define USE_SPECIAL;它会让在条件编译时候包含进mcufriend_special.h这个头文件,而在这里面对GPIO口进行定义
3。mcufriend_special.h中反注释掉#define USE_MEGA_16BIT_SHIELD,打开16bit操作GPIO模式(默认是8bit,因为Unor3或Mega2560都是8bit单片机)
这样就能编译烧录测试了。
By the way不得不说,8bit AVR真的不适合刷TFT屏。图像显示撕裂明显,如下些图请欣赏。今天就到这儿了!