前言:
富芮坤物联网开发板 上刚好带了LCD,而且是全彩的IPS LCD显示屏。这里采用的SPI的通讯方式,速度可能比不上8080的快,但是显示静态界面应该也够了。另外,根据MCU的数据手册来看,Flash的大小也差不多,可以试着移植一下。
LCD数据
MCU的数据
1、准备
硬件上没什么好准备的,LCD本身就是板载的,在 开发板资料(硬件版本v1.3)里LCD的显示驱动也提供了。主要是GUI的准备,这里使用 UC_GUI 。
上面是官方的介绍解决,精简成几句话:A、这个界面全彩的LCD肯定可以用;B、我的这款MCU可以用。下载 ucgui3.98完整版 在其中提取几个文件,接下来要用:
Config、GUI、GUI_X、GUIDemo。
这里简单说明一下,这里几个文件是为通用的移植准备的,实际运行的时候不用这么功能,后期可以再精简。Config下有几个设置文件,都是*.h的;
GUI其实叫LIB更加恰当一些,就是这个GUI的库函数(V3.98是开源的);GUI_X和移植时的操作系统、触摸屏的响应有关;GUIDemo就是官方提供的例子,刚接触可以参考例子移植,也能实现比较漂亮的画面。
附件1:ucgui3.98完整版 (待上传)。
2、开发环境搭建
首先把上面的4个文件夹下的文件添加到MDK的工程(\examples\dev1.0\ble_simple_peripheral)下,这点大家都不陌生。一方面在工程中增加*.c文件,一方面增加*.h文件的包含,但是这里有点小插曲,那就是config下的*.h文件也添加到了工程。这样干也不是必须,只是这样比较方便查看几个关键的头文件。
相关的文件添加完成后,就需要对几个必要的文件进行修改了。总的一个思路就是:A、告诉GUI使用的LCD为多大尺寸;B、告诉GUI使用的LCD色彩为多少位;C、告诉GUI使用的单片机主控是什么;D、告诉GUI使用的LCD驱动方式是什么。
2.3 修改LCDTemplate.c 文件:填充LCD_L0_SetPixelIndex(),将我们单片机画点的函数交给GUI。其实还有个读点的函数,现在没有实现,既然GUI能跑那就先跑着吧,出了问题再解决问题。
2.5 至此,GUI已经能够显示了,但是GUI里面有些展示效果提供动画 ,所以需要时钟。那我们开一个硬件定时器提供1ms的中断心跳就好。至于为什么不使用软件定时器,原因是这里的ble_simple_peripheral 环境是非抢占式的。硬件定时器的使用3步:初始化定时器、开定时器中断、重写中断函数。
全部回复 6