OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 19252|回复: 51

本人的处女贴,大家多多关注啊,关于ucGUI的移植-裸奔的

  [复制链接]

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
发表于 2013-10-20 15:08:56 | 显示全部楼层 |阅读模式
fficeffice" />

ucGUI移植笔记

最近在弄ucGUI的移植,网上搜了不少资料,也问了同学,总算把简单的一个程序弄好了,也感谢openedv论坛和hua290565456的网友,看了他的贴子,才恍然大悟弄好。

该程序是直接用的原子大哥的TFTLCD显示的例子,直接拿过来移植的,感谢原子大哥的程序,在我学习STM32的旅途上帮助我不少。

所用到的是原子大哥TFTLCD例子(库函数版本)和ucGUI3.90源码。

建工程就不说了,附件里有,相信大家也看到别人建的工程了,下面直接说重点。

 

1.       如果LCD驱动文件是lcd.clcd.h,最好改为别的名字,比如ili93xx.cili93xx.h。然后还要把LCD_Init()初始化函数改为LCDx_Init()

2.       需要改的地方:

        A. LCDConf.h中按照下面的图就行,其余的可以删除掉,注意红框中是刚刚改过的LCD初始化函数,改为刚刚更改的初始化函数就行。


 


   B.接下来事GUIConf.h中的设置,目前只是用到简单的一个现实函数,多以就全部设为0


    C. 这个是LCD驱动函数的修改,这三个最好改红框选中的文件


接下来就是更改的第一块,首先的把第1部所更改的相应的LCD底层函数的头文件加进来不然ucGUI没办法正常工作然后就是第二个红框给为自己的驱动芯片型号 




  

再就是第二块,找到画蓝线的两个函数,用方框里的函数取代,如果是用原子大哥的,第一个函数必须要用快速画点函数,因为函数参数里有颜色这个参数,画点函数没有,如果是别的程序,也是一样,加入画点函数就行,但必须要有颜色的参数。第二个函数就是读取某点的颜色值的函数,加进来就行,我这儿直接就用了原子大哥的程序。

3.       最后修改主函数

 


有人纳闷了,为什么把LCD初始化函数


给注释掉了没关系在前面

文件中不是有个宏定义嘛


这个宏定义已经在

这个文件中调用,见下图哦




    还有一项特别注意的,如果你用原子大哥的LCD初始化函数,移植完后,你会发现你的屏幕先白屏一下之后就马上黑屏,而且后面无论设置什么颜色都是这样的情况。在调用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); 注释掉就不会错了,小问题大错误。这是引用的hua290565456的帖子里的话,觉得很有用,就粘贴过来了。

 

这就是一个基本的ucGUI的移植。该笔记放在附件了,有工程和源码,还有此贴的word文档。

UCGUI3.90版源码.rar

3.28 MB, 下载次数: 1935

UCGUI移植-战舰板子.rar

1.49 MB, 下载次数: 2837

ucGUI移植笔记.doc

191.5 KB, 下载次数: 2272

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2013-10-1
在线时间
0 小时
发表于 2013-10-20 15:31:20 | 显示全部楼层
支持原创 顶楼主 我顶顶顶顶!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-20 16:56:05 | 显示全部楼层
不错,谢谢分享.cool.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

53

主题

608

帖子

0

精华

高级会员

Rank: 4

积分
890
金钱
890
注册时间
2013-3-29
在线时间
18 小时
发表于 2013-10-20 18:01:22 | 显示全部楼层
回复【楼主位】pizhihui1993:
---------------------------------
处女需要顶顶!
学电子,学音乐!!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-20 21:28:30 | 显示全部楼层
必须的
回复 支持 反对

使用道具 举报

13

主题

78

帖子

0

精华

初级会员

Rank: 2

积分
150
金钱
150
注册时间
2013-6-21
在线时间
0 小时
发表于 2013-10-20 22:00:02 | 显示全部楼层
这个必须赞
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
 楼主| 发表于 2013-10-20 22:25:40 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
成精华帖了,谢谢原子大哥,心情无比激动,给了我更足的动力啊。考虑持续更新,下一步应该是触屏了。
回复 支持 反对

使用道具 举报

2

主题

5

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2012-6-1
在线时间
6 小时
发表于 2013-10-20 23:00:11 | 显示全部楼层
正在学,刚好用到,谢谢了,赞一个!
回复 支持 反对

使用道具 举报

0

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2013-8-7
在线时间
7 小时
发表于 2013-10-21 12:07:29 | 显示全部楼层
必须支持
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-10-28
在线时间
0 小时
发表于 2013-10-28 20:32:56 | 显示全部楼层
顶!
回复 支持 反对

使用道具 举报

75

主题

458

帖子

4

精华

金牌会员

Rank: 6Rank: 6

积分
1635
金钱
1635
注册时间
2012-8-28
在线时间
71 小时
发表于 2013-10-29 12:40:56 | 显示全部楼层
顶下,破个处。下次楼主就可以多多出个好帖子了。
QQ750273008有好的资料记得发给我哦。。。
回复 支持 反对

使用道具 举报

25

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
162
金钱
162
注册时间
2013-10-29
在线时间
38 小时
发表于 2013-10-29 17:04:21 | 显示全部楼层
话说,群众的力量是伟大的。
回复 支持 反对

使用道具 举报

22

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
215
金钱
215
注册时间
2012-4-17
在线时间
0 小时
发表于 2013-10-31 21:37:22 | 显示全部楼层
顶楼主!!!
回复 支持 反对

使用道具 举报

17

主题

293

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
388
金钱
388
注册时间
2012-12-26
在线时间
1 小时
发表于 2013-11-1 22:54:24 | 显示全部楼层
回复【楼主位】pizhihui1993:
---------------------------------
LCD_NULL.C 里面的LCD_L0_SetPixelIndex函数和LCD_L0_GetPixelIndex函数要改吗?
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2013-11-1
在线时间
0 小时
发表于 2013-11-1 23:55:35 | 显示全部楼层
请问MINI版的怎么移植呢 哪有地方跟战舰是不同的啊???
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
 楼主| 发表于 2013-11-8 20:56:06 | 显示全部楼层
回复【14楼】kassandra:
---------------------------------
应该不需要改吧,我改的是LCDDummy.c的文件
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
 楼主| 发表于 2013-11-8 20:56:50 | 显示全部楼层
回复【15楼】apple163995:
---------------------------------
ucgui应该是一样的,只要之前的LCD显示功能正常就行。底层的LCD初始化不一样
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
发表于 2013-11-9 23:04:06 | 显示全部楼层
回复【楼主位】pizhihui1993:
-------------------------------
能交个朋友吗?我也正在ucGUI移植。遇到点问题想请教你一下。我的QQ号:1635195950
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

138

主题

362

帖子

0

精华

高级会员

Rank: 4

积分
997
金钱
997
注册时间
2012-9-17
在线时间
29 小时
发表于 2013-11-11 16:08:04 | 显示全部楼层
你的程序不能下载到原子的开发板里?  为什么?
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
 楼主| 发表于 2013-11-11 22:46:04 | 显示全部楼层
能啊,我用的战舰板子!
回复 支持 反对

使用道具 举报

4

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2013-10-17
在线时间
9 小时
发表于 2014-4-23 11:55:24 | 显示全部楼层
顶楼主
回复 支持 反对

使用道具 举报

11

主题

69

帖子

0

精华

初级会员

Rank: 2

积分
170
金钱
170
注册时间
2012-7-12
在线时间
5 小时
发表于 2014-4-29 10:01:50 | 显示全部楼层
楼主,你帖子的最后,我加不加这句 LCD_Clear(WHITE);  都会出现你说的问题
回复 支持 反对

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-4-29 20:29:28 | 显示全部楼层
感谢分享,版区有你更精彩!
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
 楼主| 发表于 2014-6-11 20:55:58 | 显示全部楼层
感谢大家热心的回复,可惜考研了,好久没看论坛了,那些代码也没时间看了,大家找热心的人讨论哦, 
实在不行的话可以叫我扣扣912458257聊哦,看到会热心的解答
回复 支持 反对

使用道具 举报

13

主题

89

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-3-11
在线时间
5 小时
发表于 2014-6-17 21:54:00 | 显示全部楼层
楼主,好像掉了一个步骤:ili93xx.h里的下面的结构体定义要移到ili93xx.c里
 typedef struct
{
u16 LCD_REG;
u16 LCD_RAM;
} LCD_TypeDef;     
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE))
#define LCD             ((LCD_TypeDef *) LCD_BASE)
不然出现错误:
..\GUI\Core\gui.h(451): error:  #18: expected a ")"
..\GUI\Core\gui.h(451): error:  #79: expected a type specifier
..\GUI\Core\gui.h(451): error:  #168: a function type is not allowed here
compiling ili93xx.c...
compiling LCDDummy.c...
..\GUI\LCDDriver\LCDDummy.c(422): error:  #134: expected a field name
..\GUI\LCDDriver\LCDDummy.c(438): error:  #134: expected a field name
回复 支持 反对

使用道具 举报

20

主题

44

帖子

0

精华

初级会员

Rank: 2

积分
144
金钱
144
注册时间
2012-7-26
在线时间
0 小时
发表于 2014-7-9 16:34:48 | 显示全部楼层
设计这么酷,整理后来参加我们的经验设计分享活动吧 
投稿文章将会在爱板网首页展示哦,还有机会获得智能奖品 
http://www.eeboard.com/zhengwen
开发板商城 www.eeboard.com/shop
回复 支持 反对

使用道具 举报

16

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2013-11-23
在线时间
6 小时
发表于 2014-10-26 21:36:37 | 显示全部楼层
回复【7楼】pizhihui1993:
---------------------------------
哥们,程序进去后战舰板黑屏啊
回复 支持 反对

使用道具 举报

31

主题

106

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
421
金钱
421
注册时间
2014-3-11
在线时间
15 小时
发表于 2014-10-28 10:41:03 | 显示全部楼层
mark,,,,,,,
回复 支持 反对

使用道具 举报

7

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2014-6-14
在线时间
1 小时
发表于 2015-1-23 20:30:18 | 显示全部楼层
mark........
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2015-1-7
在线时间
4 小时
发表于 2015-2-26 18:09:36 | 显示全部楼层
回复【25楼】蓝色沸点:
---------------------------------
是的,我遇到你说的问题了,按照你说的 解决了。。。
回复 支持 反对

使用道具 举报

33

主题

253

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
412
金钱
412
注册时间
2012-8-16
在线时间
0 小时
发表于 2015-2-27 13:31:24 | 显示全部楼层
好吧!我也赞一个~~~
开源的世界,你可以做主!!
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-1-14
在线时间
0 小时
发表于 2015-3-14 16:06:49 | 显示全部楼层
回复【30楼】天涯海角实验室:
---------------------------------
我也遇到了,也解决啦,谢谢大家~
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2015-3-17
在线时间
0 小时
发表于 2015-3-17 14:28:52 | 显示全部楼层
回复【27楼】DoneMur:
---------------------------------
好吧,我的也是下进去之后就黑屏了,请问同学你后来是怎么解决这个问题的?
回复 支持 反对

使用道具 举报

16

主题

75

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2013-11-23
在线时间
6 小时
发表于 2015-3-23 15:07:39 | 显示全部楼层
回复【33楼】就爱智能家居:
---------------------------------
兄弟,我用了一个移植好的,然后在那个基础上弄的
回复 支持 反对

使用道具 举报

10

主题

86

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
485
金钱
485
注册时间
2013-12-3
在线时间
83 小时
发表于 2015-3-24 20:28:52 | 显示全部楼层
顶楼主 已收藏
回复 支持 反对

使用道具 举报

1

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2015-4-13
在线时间
0 小时
发表于 2015-4-13 22:05:54 | 显示全部楼层
正是我需要的,支持了,太好了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
25
金钱
25
注册时间
2013-7-30
在线时间
0 小时
发表于 2015-4-15 13:42:06 | 显示全部楼层
正想做,太感谢了!
回复 支持 反对

使用道具 举报

72

主题

2711

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3505
金钱
3505
注册时间
2014-8-4
在线时间
696 小时
发表于 2015-4-16 14:45:46 | 显示全部楼层
mark,ucgui移植,赞一个
以我资质之鲁钝,当尽平心静气、循序渐进、稳扎稳打之力。
回复 支持 反对

使用道具 举报

9

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
426
金钱
426
注册时间
2011-7-11
在线时间
49 小时
发表于 2015-5-16 23:18:12 | 显示全部楼层
mark,赞一个
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2015-5-5
在线时间
0 小时
发表于 2015-5-17 17:01:24 | 显示全部楼层
楼主,这个LCD和STM32开发板具体的引脚连接有吗
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2015-5-5
在线时间
0 小时
发表于 2015-5-17 19:15:18 | 显示全部楼层
楼主,我是使用你的程序直接编译之后出现了一下错误
..\OBJ\LCD.axf: Fatal error: L6002U: Could not open file ..\obj\main.o: No such file or directory
这是什么呢?求指教
回复 支持 反对

使用道具 举报

5

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
415
金钱
415
注册时间
2012-8-11
在线时间
32 小时
发表于 2015-5-20 12:20:33 | 显示全部楼层
不错呀谢谢楼主分享
做人要出于情,做事要出于心!
回复 支持 反对

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
36
金钱
36
注册时间
2015-4-24
在线时间
0 小时
发表于 2015-5-23 11:02:24 | 显示全部楼层
在这个上边做触摸屏菜单好弄不?调用什么函数?求指教
回复 支持 反对

使用道具 举报

0

主题

10

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2015-7-25
在线时间
2 小时
发表于 2015-8-16 16:06:25 | 显示全部楼层
很好,谢谢。本人初学者,感觉有点麻烦,看来得慢慢来
回复 支持 反对

使用道具 举报

19

主题

217

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-4-1
在线时间
34 小时
发表于 2015-11-6 15:35:00 | 显示全部楼层
回复【25楼】蓝色沸点:
---------------------------------
ili93xx.h里的下面的结构体定义要移到ili93xx.c里 
 typedef struct 

u16 LCD_REG; 
u16 LCD_RAM; 
} LCD_TypeDef;       
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE)) 
#define LCD             ((LCD_TypeDef *) LCD_BASE) 
为什么要这么做,这么做的根据是什么,求大神解答
一直在路上,一直在成长。
回复 支持 反对

使用道具 举报

19

主题

217

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
427
金钱
427
注册时间
2015-4-1
在线时间
34 小时
发表于 2015-11-6 15:35:47 | 显示全部楼层
回复【30楼】天涯海角实验室:
---------------------------------
ili93xx.h里的下面的结构体定义要移到ili93xx.c里 
 typedef struct 

u16 LCD_REG; 
u16 LCD_RAM; 
} LCD_TypeDef;       
#define LCD_BASE        ((u32)(0x6C000000 | 0x000007FE)) 
#define LCD             ((LCD_TypeDef *) LCD_BASE) 
大神,这么做的根据是什么,求解
一直在路上,一直在成长。
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2013-11-18
在线时间
8 小时
发表于 2016-3-15 16:29:51 | 显示全部楼层
mark
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
47
金钱
47
注册时间
2014-8-26
在线时间
11 小时
发表于 2016-3-18 13:30:30 | 显示全部楼层
mini板移植完了注释掉lcd_clear();还是白屏,不知道为什么
回复 支持 反对

使用道具 举报

30

主题

705

帖子

1

精华

新手上路

积分
21
金钱
21
注册时间
2013-3-14
在线时间
52 小时
发表于 2016-3-18 15:35:23 | 显示全部楼层
yeah,nice,cool.
原子哥是不是又要出黑科技了呀。^_^...
回复 支持 反对

使用道具 举报

20

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-8-28
在线时间
108 小时
发表于 2017-1-4 11:45:25 | 显示全部楼层
GUI_INVALID_COLOR不是一个宏定义?初始化清白屏还能更改了这个?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-8-21 10:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表