战舰移植UCGUI个人心得(不带UCOS)

2019-08-13 19:47发布

                          本人新手,这几天移植UCGUI遇到了种种问题,这里分享下自己的心得。
        首先准备好一个工程和一个UCGUI源码,我是直接用了原点的实验13 TFTLCD显示实验,UCGUI源码用的是3.90的版本。
        然后你需要修改一下LCD驱动,先把lcd.c和lcd.h改成别的名字,比如ili9320.c和ili9320.h.然后将lcd.c里面的初始化函数名字改成别的,比如ILI9320_Init(),然后再编译。
        接着准备开始一直UCGUI,这里的步骤太多,就不写了。我是按照白开水的视频一步一步移植下来的。视频地址和下载之地是 http://bbs.anbn.cn/thread-58-1-1.html
        移植直到编译全部通过之后,这里就出现了一个重大问题,困扰了我两天。按照上面的移植步骤,你到最后初始化GUI_Init()之后,下载到板子上,你会发现你的屏幕先白屏一下之后就马上黑屏,而且后面无论设置什么颜 {MOD}都是这样的情况。这个问题主要原因是:在调用GUI_Init()的时候,这个函数会进入LCD_Init(),然后在LCD_Init()函数里面有着样的语句   

  #if (GUI_DEFAULT_BKCOLOR != GUI_INVALID_COLOR)

        /* Clear video memory */

        LCD_SetDrawMode(GUI_DRAWMODE_REV);

        LCD_FillRect(0,0, GUI_XMAX, GUI_YMAX);

        LCD_SetDrawMode(0);

      #endif

这句#if (GUI_DEFAULT_BKCOLOR != GUI_INVALID_COLOR)里面 的GUI_DEFAULT_BKCOLOR 初值是OXFFFF, GUI_INVALID_COLOR 初值也是0XFFFF,而原子哥的初始化函数最后有一句LCD_Clear(WHITE);这样就把 GUI_INVALID_COLOR 的值设置成了0X0000;导致调用了下面的三个函数。从而出现上面的问题。只要把 原子哥 的初始化函数LCD_Clear(WHITE); 注释掉就不会错了,小问题大错误。
        希望自己的小心得对大家有有用。






友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
47条回答
weiwei
1楼-- · 2019-08-16 21:11
回复【12楼】wsshopping:
---------------------------------
能说的具体点么大神,搞了2天了还是白屏一下然后黑 感觉能改的地方都该了
菜鸟也玩STM32
2楼-- · 2019-08-16 23:43
回复【26楼】weiwei:
---------------------------------
解决了解决了。。。呜呜呜,我可算是调了半个晚上加个早上,我注释掉了原子哥的LCD_WHITE,然后又去改了private.h里面的GUI默认背景,然后又各种改,后来发现那个那个dummy.c里面的读点函数有3个变量,可是我的read——point只有2个,没有颜 {MOD}....改改就好了。谢谢你的回复,
菜鸟也玩STM32
3楼-- · 2019-08-17 01:50
 精彩回答 2  元偷偷看……
745021926
4楼-- · 2019-08-17 04:28
回复【楼主位】hua290565456:
---------------------------------
正在寻找GUO3.90的源码,哈哈。
anglexuchao66
5楼-- · 2019-08-17 05:55
楼主,我建立了一个和你一样的工程,可是在编译的时候出现下述现象,大神帮帮忙啊




冰封小凯
6楼-- · 2019-08-17 11:46
101度开水继推出 手把手教你在stm32上移植ucgui 之
后又推出了一套UCGUI视频教程 详细系统的分析了
UCGUI很好的帮助ucgui爱好者进行学习和开发
开水 qq 610095871
ucgui.taobao.com
以下是回调函数和消息驱动的视频教程
http://www.tudou.com/programs/view/JTM6rVaqw8s/
http://www.tudou.com/programs/view/CpHGLDTlJuE/

一周热门 更多>