ucGUI 移植笔记完善版
最近在弄 ucGUI 的移植,网上搜了不少资料,也问了同学,总算把简单的一个程序
弄好了,也感谢 openedv 论坛和 hua290565456 的网友,看了他的贴子,才恍然大悟弄好。
该程序是直接用的原子大哥的 TFTLCD 显示的例子,直接拿过来移植的,感谢原子
大哥的程序,在我学习 STM32 的旅途上帮助我不少。
所用到的是原子大哥 TFTLCD 例子(库函数版本)和 ucGUI3.90 源码。
建工程就不说了,附件里有,相信大家也看到别人建的工程了,下面直接说重点。
补充说明:如果你移植的时候怎么也不成功,大部分原因是
LCD 。 考虑两
方面的原因:
一、你写的底层驱动程序;
二、底层驱动程序与
的配置。
所有的问题几乎都是出现在这两方面,造成 GUI 无法成功调用正确的底层初始化程序。
所以:
1. 确保你的底层驱动在没有移植 GUI 之前,能顺序驱动 LCD 成功。
2. 然后,确保你的底层驱动接口没有与上层
有相同的公共的变量。 可以有同名的变
量,但所有的变量都必须是私有的。也就是原子哥的那个结构体 LCD 不能在.h 中定义。
如果 LCD 驱动文件是 lcd.c 和 lcd.h,最好改为别的名字,比如 ili93xx.c 和 ili93xx.h。然
后还要把 LCD_Init()初始化函数改为 LCDx_Init();因为 GUI 系统已经有名为 LCD.c 的
文件和 LCD_Init()的函数。总而言之,确保你的底层的接口文件(xx.h)没有与上层同
名的公共变量。
3. 修改 GUI 系统与底层的接口:
A. LCDConf.h 中按照下面的图就行,其余的可以删除掉,一定要删除其他的,因为有
相同的
定义,会造成硬件出错而进入硬件出错中断死循环。
注意红框中是刚刚改过的 LCD 初始化函数,改为刚刚更改的初始化函数就行。
B. 接下来是 GUIConf.h 中的设置,目前只是用到简单的一个现实函数,多以就全部设