OpenEdv-开源电子网

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

在STM32上移植裸机ucGUI(超详细)

[复制链接]

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
发表于 2013-7-1 10:41:58 | 显示全部楼层 |阅读模式
更多更精彩内容见晓梦逸尘的博客:www.xiaomengyc.com
  首先感谢WZT大哥共享的ucGUI移植的文档,先将本人的移植过程详细记录下来,以供初学者参考:
1、打开调试好的TFTLCD测试程序(这里是打开“ALIENTEK MINISTM32 实验10 TFTLCD显示实验”)的工程文件夹,在其中创建ucGUI的文件夹。由于ucGUI/CORE文件中已经存在了lcd.h和lcd.c的文件,所以我们将工程目录HARDWARE/LCD中的lcd.c文件和lcd.h文件的文件名换成ili93xx.c和ili93xx.h,并将其中的预处理命令也相应的更换。然后将ili93xx.h和ili93xx.c中用来标识液晶屏宽和高的LCD_H与LCD_W分别换成LCD_HEIGHT和LCD_WIDTH。
2、打开ucGUI源码文件,将其Start/GUI目录下的除JPEG文件夹以外的文件夹复制到第一步中创建的ucGUI文件夹中。
3、将Start/Config和Sample/GUI_X也复制到之前的文件夹 ucGUI中。
4、打开工程文件,添加工程文件夹如下图:


其中,USER、HARDWARE、SYSTEM、CORE、FWLib是工程中原有的文件,除此之外为需要新建的文件。 由于ucGUI目录下的CORE文件名与原有的文件名相冲突,故将其修改为ucCORE。并将ucGUI目录下的除GUI_X、Config以外的所有文件添加到相应的文件夹下。然后再添加Config目录下对应的三个.h文件和GUI_X目录下的GUI_X.c文件。
5、打开Config/GUIConf.h将其修改如下:
#ifndef GUICONF_H
#define GUICONF_H

#define GUI_OS (0) /* Compile with multitasking support */
#define GUI_SUPPORT_TOUCH (0) /* Support a touch screen (req. win-manager) */
#define GUI_SUPPORT_UNICODE (0) /* Support mixed ASCII/UNICODE strings */

#define GUI_DEFAULT_FONT &GUI_Font6x8
//#define GUI_ALLOC_SIZE 12500 /* Size of dynamic memory ... For WM and memory devices*/
#define GUI_ALLOC_SIZE 5000 /* Size of dynamic memory ... For WM and memory devices*/

/*********************************************************************
*
* Configuration of available packages
*/

#define GUI_WINSUPPORT 0 /* Window manager package available */
#define GUI_SUPPORT_MEMDEV 0 /* Memory devices available */
#define GUI_SUPPORT_AA 0 /* Anti aliasing available */

#endif /* Avoid multiple inclusion */
6、打开Config/LCDConf.h将其修改为如下:

#ifndef LCDCONF_H
#define LCDCONF_H

/*********************************************************************
*
* General configuration of LCD
*
**********************************************************************
*/

#define LCD_XSIZE (240) /* 320 -> 400 */
#define LCD_YSIZE (320) /* 240 */
#define LCD_CONTROLLER (-1) /* 9320 -> 5420 */
#define LCD_BITSPERPIXEL (16)
#define LCD_FIXEDPALETTE (565)
#define LCD_SWAP_RB (1) //红蓝反色交换
//#define LCD_SWAP_XY (1)
//LCD_MIRROR_X
#define LCD_INIT_CONTROLLER() LCD_hard_Init();
#endif /* LCDCONF_H */

7、打开ili93xx.c和ili93xx.h文件,将其中的
void LCD_Init(void)函数更名为void LCD_hard_Init(void)以防与ucGUI中的原有函数名冲突。然后再在ili93xx.c中添加如下函数,并在ili93xx.h中将其声明。
void ili9320_SetPoint(u16 x,u16 y,u16 color)
{
POINT_COLOR=color;
LCD_DrawPoint(x,y);
}
8、打开LCDDummy.c文件,添加头文件包含
#include "ili93xx.h";将预处理命令修改为#if (LCD_CONTROLLER == -1) 。
9、在void LCD_L0_SetPixelIndex(int x, int y, int PixelIndex)函数最后添加语句ili9320_SetPoint( xPhys, yPhys ,PixelIndex);
10、在unsigned int LCD_L0_GetPixelIndex(int x, int y)函return语句之前添加PixelIndex = LCD_ReadPoint(x,y);
11、移植ColorBar程序,将main.c文件修改为如下形式(别忘了在main.c文件中添加#include “gui.h”的预处理命令):
void DemoShowColorBar(void);

int main(void)
{
SystemInit();
delay_init(72); //延时初始化
NVIC_Configuration();
uart_init(9600);
LED_Init();
KEY_Init();
// LCD_Init();
GUI_Init();
GUI_SetBkColor(GUI_BLACK);

GUI_SetColor(GUI_WHITE);
GUI_Clear();
GUI_SetFont(&GUI_Font24_ASCII);
GUI_DispStringHCenterAt("COLOR_ShowColorBar - Sample", 160, 5);
DemoShowColorBar();

while(1)
{
delay_ms(400);
LED0 = !LED0;
}

}

void DemoShowColorBar(void)
{
int x0 = 60, y0 = 40, yStep = 15, i;
int xsize = LCD_GetDevCap(LCD_DEVCAP_XSIZE) - x0;
GUI_SetFont(&GUI_Font8x16);
#if (LCD_FIXEDPALETTE)
y0 = 66;
yStep = 13;
GUI_DispStringAt("Fixed palette: ", 0, 40);
GUI_DispDecMin(LCD_FIXEDPALETTE);
#endif
GUI_DispStringAt("Red", 0, y0 + yStep);
GUI_DispStringAt("Green", 0, y0 + 3 * yStep);
GUI_DispStringAt("Blue", 0, y0 + 5 * yStep);
GUI_DispStringAt("Grey", 0, y0 + 6 * yStep);
GUI_DispStringAt("Yellow", 0, y0 + 8 * yStep);
GUI_DispStringAt("Cyan", 0, y0 + 10 * yStep);
GUI_DispStringAt("Magenta", 0, y0 + 12 * yStep);
for (i = 0; i < xsize; i++) {
U16 cs = (255 * (U32)i) / xsize;
U16 x = x0 + i;;
/* Red */
GUI_SetColor(cs);
GUI_DrawVLine(x, y0 , y0 + yStep - 1);
GUI_SetColor(0xff + (255 - cs) * 0x10100L);
GUI_DrawVLine(x, y0 + yStep, y0 + 2 * yStep - 1);
/* Green */
GUI_SetColor(cs<<8);
GUI_DrawVLine(x, y0 + 2 * yStep, y0 + 3 * yStep - 1);
GUI_SetColor(0xff00 + (255 - cs) * 0x10001L);
GUI_DrawVLine(x, y0 + 3 * yStep, y0 + 4 * yStep - 1);
/* Blue */
GUI_SetColor(cs * 0x10000L);
GUI_DrawVLine(x, y0 + 4 * yStep, y0 + 5 * yStep - 1);
GUI_SetColor(0xff0000 + (255 - cs) * 0x101L);
GUI_DrawVLine(x, y0 + 5 * yStep, y0 + 6 * yStep - 1);
/* Gray */
GUI_SetColor((U32)cs * 0x10101L);
GUI_DrawVLine(x, y0 + 6 * yStep, y0 + 7 * yStep - 1);
/* Yellow */
GUI_SetColor(cs * 0x101);
GUI_DrawVLine(x, y0 + 7 * yStep, y0 + 8 * yStep - 1);
GUI_SetColor(0xffff + (255 - cs) * 0x10000L);
GUI_DrawVLine(x, y0 + 8 * yStep, y0 + 9 * yStep - 1);
/* Cyan */
GUI_SetColor(cs * 0x10100L);
GUI_DrawVLine(x, y0 + 9 * yStep, y0 + 10 * yStep - 1);
GUI_SetColor(0xffff00 + (255 - cs) * 0x1L);
GUI_DrawVLine(x, y0 + 10 * yStep, y0 + 11 * yStep - 1);
/* Magenta */
GUI_SetColor(cs * 0x10001);
GUI_DrawVLine(x, y0 + 11 * yStep, y0 + 12 * yStep - 1);
GUI_SetColor(0xff00ff + (255 - cs) * 0x100L);
GUI_DrawVLine(x, y0 + 12 * yStep, y0 + 13 * yStep - 1);
}
}
12、下载到开发板运行如下图所示:




13、以上就完成了ucGUI裸机移植的所有步骤,但是发现刷屏较慢。然后我们跟踪
GUI_Clear()刷屏函数的执行情况,发现是void LCD_L0_FillRect(int x0, int y0, int x1, int y1)函数执行效率不高。于是将其修改如下:
void LCD_L0_FillRect(int x0, int y0, int x1, int y1)
{
LCD_Fill(x0,y0,x1,y1,LCD_COLORINDEX);
}
重新烧写程序,发现刷屏速度大幅度提升!
14、ucGUI预定义了一些颜色,这些预定义是放在gui.h文件中。然而,我们发现这些颜色是以24bits的方式定义的。通过查询手册发现我们所使用的颜色被ucGUI定义成了“逻辑颜色” ,它通过最小平方偏移搜索的方式将其映射为“物理颜色”。所以在用户使用颜色时有很强的灵活性。

更多更精彩内容见晓梦逸尘的博客:www.xiaomengyc.com

TFTLCD.zip

1.35 MB, 下载次数: 11453

暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

14

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2013-6-29
在线时间
0 小时
发表于 2013-7-1 10:43:22 | 显示全部楼层
好,正需要,太及时了
回复 支持 反对

使用道具 举报

9

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2012-10-26
在线时间
0 小时
发表于 2013-7-1 10:58:29 | 显示全部楼层
现在也刚开始学,谢谢分享
回复 支持 反对

使用道具 举报

16

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-6-14
在线时间
8 小时
发表于 2013-7-5 21:16:07 | 显示全部楼层
想问你一个问题,我也是照你的这个历程移植的,但为什么总报错:..\ucGUI\LCDDriver\LCDDummy.c(447): error:  #134: expected a field name



我是移到7英寸屏幕的,希望大神指点一下小弟,
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-7-5 21:38:49 | 显示全部楼层
回复【4楼】s1q23:
---------------------------------
这个函数没有实现。请确认#define LCD_CONTROLLER     (-1)  和LCDDummay.c中开始位置的预处理宏定义是修改正确的。
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

16

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-6-14
在线时间
8 小时
发表于 2013-7-5 21:44:27 | 显示全部楼层
回复【5楼】xiaomengyichen:
---------------------------------

#ifndef LCDCONF_H
#define LCDCONF_H

/*********************************************************************
*
*                   General configuration of LCD
*
**********************************************************************
*/

#define LCD_XSIZE      (800)   /* X-resolution of LCD, Logical coor. */
#define LCD_YSIZE      (480)   /* Y-resolution of LCD, Logical coor. */

#define LCD_BITSPERPIXEL (16)

#define LCD_CONTROLLER (-1)  
#define LCD_FIXEDPALETTE   (565)
#define LCD_SWAP_RB        (0)    //红蓝反色交换
#define LCD_INIT_CONTROLLER()  LCD_Hard_Init();


 
#endif /* LCDCONF_H */

这就是我修改的,请问对吗?我用的AN1304 ATK-7’TFTLCD屏幕
回复 支持 反对

使用道具 举报

4

主题

119

帖子

0

精华

初级会员

Rank: 2

积分
169
金钱
169
注册时间
2013-4-6
在线时间
3 小时
发表于 2013-7-5 22:16:36 | 显示全部楼层
强力支持,  感谢无私分享 !!
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-7-5 22:42:07 | 显示全部楼层
回复【6楼】s1q23:
---------------------------------
那个错误意思是没有找到那个函数,而且那个错误也不止一条。你的GUIConf.h配置看起来没问题。你再看看LCDDummay.c文件有没有加进来,这个文件中的前面的宏定义别忘了处理。
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

13

主题

314

帖子

0

精华

高级会员

Rank: 4

积分
713
金钱
713
注册时间
2012-7-20
在线时间
102 小时
发表于 2013-7-6 01:12:15 | 显示全部楼层
很不错,收藏了
互联网,智能设备爱好者,欢迎讨论任何有意思的想法。
回复 支持 反对

使用道具 举报

16

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-6-14
在线时间
8 小时
发表于 2013-7-6 11:34:40 | 显示全部楼层
大哥,能不能抽空帮我看看,研究了几天了实在找不出错误原因

ucgui实验.rar

25.6 MB, 下载次数: 1037

回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-7-6 11:48:05 | 显示全部楼层
回复【10楼】s1q23:
---------------------------------
你用的是mini开发板吗?
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

16

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-6-14
在线时间
8 小时
发表于 2013-7-6 12:21:57 | 显示全部楼层
回复【11楼】xiaomengyichen:
---------------------------------
不是,是战舰开发板
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-7-6 13:09:13 | 显示全部楼层
回复【12楼】s1q23:
---------------------------------
你这样弄吧,你把LCDConf.h中的那个LCD的型号换成#define LCD_CONTROLLER (-2) ,然后选择修改LCDDriver目录下的LCDNull.c文件进行编译,修改这个文件和修改LCDDummay.c文件是一样的。编译LCDDummay.c的那个错误我现在也没有找出来。祝你好运!
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

16

主题

77

帖子

0

精华

初级会员

Rank: 2

积分
166
金钱
166
注册时间
2013-6-14
在线时间
8 小时
发表于 2013-7-6 13:49:38 | 显示全部楼层
回复【13楼】xiaomengyichen:
---------------------------------
好的 谢谢指点
回复 支持 反对

使用道具 举报

50

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2013-4-9
在线时间
1 小时
发表于 2013-7-8 09:45:01 | 显示全部楼层
回复【楼主位】xiaomengyichen:
----------------------------这位大哥 我找来找去也没发现你在哪里有启动 ili93xx的-->void LCD_hard_Init(void)
求指点
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-7-8 10:26:05 | 显示全部楼层
回复【15楼】charlieholy:
---------------------------------
在LCDConf.h中有宏定义#define LCD_INIT_CONTROLLER()  LCD_hard_Init();语句。跟踪LCD_INIT_CONTROLLER()语句,可以发现它在LCDDummy.c中被调用的LCD_L0_Init()函数中被调用。然后再跟踪LCD_L0_Init(),可以发现他在ucCORE目录下的LCD.c文件中的 LCD_Init()函数中被调用,然后再跟踪LCD_Init()函数,发现它在GUI_Init()中被调用。所以,当在main()中调用GUI_Init()函数时就这样一路调用下去了。
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

50

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2013-4-9
在线时间
1 小时
发表于 2013-7-8 13:06:22 | 显示全部楼层
回复【16楼】xiaomengyichen:
---------------------------------
这位大哥真是热心人 谢谢啦
回复 支持 反对

使用道具 举报

50

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2013-4-9
在线时间
1 小时
发表于 2013-7-8 15:44:42 | 显示全部楼层
回复【16楼】xiaomengyichen:
---------------------------------
ucgui有调用过ILI9320中的功能函数吗
有的话能举几个例子吗
没有的话他都是自己实现基本操作函数的吗 比如画一条线之类的
回复 支持 反对

使用道具 举报

50

主题

201

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
423
金钱
423
注册时间
2013-4-9
在线时间
1 小时
发表于 2013-7-8 15:47:18 | 显示全部楼层
回复【16楼】xiaomengyichen:
---------------------------------
哦 我找到了
回复 支持 反对

使用道具 举报

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
发表于 2013-7-12 19:43:58 | 显示全部楼层
xiaomengyichen  您好,我用的也是mini的板子,下载到我的板子上是白屏啊,最新的那个mini板子
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-7-12 20:45:50 | 显示全部楼层
回复【20楼】lixulongren:
---------------------------------
我不知道你说的那个最新的mini板子跟我一年前买的mini板子有什么区别。你用原子最新的液晶屏程序按照上面的步骤移植一下看看。
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

29

主题

92

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
228
金钱
228
注册时间
2013-5-4
在线时间
0 小时
发表于 2013-7-12 22:09:28 | 显示全部楼层
GUIConf.h   GUITouchConf.h  LCDConf.h 这三个文件你做的时候是怎么加载到Config文件夹的啊
回复 支持 反对

使用道具 举报

2

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2013-7-22
在线时间
0 小时
发表于 2013-8-7 20:08:50 | 显示全部楼层
回复【4楼】s1q23:
---------------------------------
我也遇到了这个问题 ,请问您解决了么?
回复 支持 反对

使用道具 举报

39

主题

2026

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2020
金钱
2020
注册时间
2013-5-1
在线时间
87 小时
发表于 2013-8-8 10:34:39 | 显示全部楼层
mark 学习下
博观而约取,厚积而薄发。
回复 支持 反对

使用道具 举报

9

主题

43

帖子

0

精华

初级会员

Rank: 2

积分
99
金钱
99
注册时间
2012-6-9
在线时间
0 小时
发表于 2013-8-13 16:40:24 | 显示全部楼层
呵呵,真是好人啊,我弄一上午都没弄得那GUI工程,你这个一下子就解决了,呵呵
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2013-8-5
在线时间
0 小时
发表于 2013-8-15 14:15:44 | 显示全部楼层
回复【4楼】s1q23:
---------------------------------
你的结构体命名有冲突,把原来LCD.H中的LCD这个结构体换一个名字就可以了
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-8-15 19:49:55 | 显示全部楼层
回复【26楼】紫尘小奇:
---------------------------------
你说的那个啊?我怎么没找到啊。也能编译通过啊。
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

13

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2013-1-28
在线时间
0 小时
发表于 2013-8-27 11:59:39 | 显示全部楼层
回复【4楼】s1q23:
我也遇到这种情况了,请问你是怎么解决的,求指教.
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-8-27 18:24:30 | 显示全部楼层
回复【28楼】浮夸:
---------------------------------
你按照12楼的做法弄一下看看
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

13

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2013-1-28
在线时间
0 小时
发表于 2013-8-27 19:25:33 | 显示全部楼层
回复【29楼】xiaomengyichen:
---------------------------------
12楼搞出来了没?
回复 支持 反对

使用道具 举报

13

主题

58

帖子

0

精华

初级会员

Rank: 2

积分
130
金钱
130
注册时间
2013-1-28
在线时间
0 小时
发表于 2013-8-30 16:44:03 | 显示全部楼层
回复【29楼】xiaomengyichen:
---------------------------------
找到错误了、用FSMC刷液晶,里面LCD宏定义与系统文件中的冲突了
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-9-13
在线时间
0 小时
发表于 2013-9-13 10:04:59 | 显示全部楼层
回复【31楼】浮夸:
---------------------------------
具体怎么改?
生命如花如蝶,稍纵即逝,只为了一道光芒,用尽了生命。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-9-13
在线时间
0 小时
发表于 2013-9-13 10:38:33 | 显示全部楼层
回复【32楼】xiuscut:
回复【31楼】浮夸: --------------------------------- 具体怎么改?
---------------------------------
改动有点大、、、、首先在ili93xx.h中的#define LCD             ((LCD_TypeDef *) LCD_BASE) LCD改成别的名字例如LCD_,然后在ili93xx.c里把所有LCD->LCD之类的LCD全部改成LCD_。感谢29楼和帖主。
生命如花如蝶,稍纵即逝,只为了一道光芒,用尽了生命。
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2013-9-13 17:53:18 | 显示全部楼层
回复【33楼】xiuscut:
---------------------------------
谢谢支持!
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

4

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2013-7-26
在线时间
2 小时
发表于 2013-9-13 23:25:24 | 显示全部楼层
本学期想把ucos学会用,希望大家多提供点。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-9-13
在线时间
0 小时
发表于 2013-9-15 19:56:16 | 显示全部楼层
回复【34楼】xiaomengyichen:
---------------------------------
其实可以在LCDConf.h里LCD_CONTROLLER 为9320(他不是有个推荐范围么/* 9320 -> 5420 */)然后在LCDDummy.c里面把#if (LCD_CONTROLLER == -1) 改成#if (LCD_CONTROLLER == 9320) 然后就行了。不过你要是改成-2,别忘了在LCDNull.c里改很多,按照LCDDummy.c里面把硬件初始化(就是对应的函数改一下),不过出了一个错误(估计是要在某个地方将LCDDummy用LCDNull代替,我没有去找~),我就没有弄了,直接弄回LCDDummy.c,只要改那一点点就好了。然后能工作了~~~
生命如花如蝶,稍纵即逝,只为了一道光芒,用尽了生命。
回复 支持 反对

使用道具 举报

20

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
288
金钱
288
注册时间
2011-12-14
在线时间
0 小时
发表于 2013-9-15 20:14:54 | 显示全部楼层
又是好资料,感谢楼主!
回复 支持 反对

使用道具 举报

7

主题

333

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1838
金钱
1838
注册时间
2012-7-16
在线时间
504 小时
发表于 2013-9-16 17:47:30 | 显示全部楼层
好资料
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2013-9-3
在线时间
8 小时
发表于 2013-9-18 17:17:18 | 显示全部楼层
正准备搞系统的移植,楼主的帖子真是帮了初学者的忙了!
回复 支持 反对

使用道具 举报

7

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2013-12-22
在线时间
16 小时
发表于 2014-3-17 13:28:21 | 显示全部楼层
回复【楼主位】xiaomengyichen:
---------------------------------
打开LCDDummy.c文件,添加头文件包含#include "ili93xx.h"后, LCD_L0_SetPixelIndex(x0, y, LCD_COLORINDEX);这一条语句就出现错误,其中LCD_COLORINDEX下面还被标注了红色波浪线。不包含那个头文件就没这个错误,为什么呢?
回复 支持 反对

使用道具 举报

4

主题

84

帖子

0

精华

初级会员

Rank: 2

积分
155
金钱
155
注册时间
2013-10-17
在线时间
9 小时
发表于 2014-5-8 13:48:47 | 显示全部楼层
mark,留下方便学习
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-7-16
在线时间
0 小时
发表于 2014-7-16 12:33:35 | 显示全部楼层
compiling WM_Show.c...
compiling WM_StayOnTop.c...
compiling WM_Timer.c...
compiling WM_TimerExternal.c...
compiling WM_UserData.c...
compiling WM_Validate.c...
compiling WM_ValidateWindow.c...
compiling WMMemDev.c...
compiling WMTouch.c...
linking...
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_SetLUTEntry (referred from gui_setlutentry.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_SetOrg (referred from gui_setorg.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_Init (referred from lcd.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_On (referred from lcd.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol GUI_MEMDEV__APIList8 (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_DrawBitmap (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_DrawHLine (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_DrawVLine (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_FillRect (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_GetPixelIndex (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_SetPixelIndex (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol LCD_L0_XorPixel (referred from lcd_api.o).
..\OBJ\MySTM32.axf: Error: L6218E: Undefined symbol GUI_MEMDEV_Draw (referred from wm.o).
..\OBJ\MySTM32.axf: Not enough information to list image symbols.
..\OBJ\MySTM32.axf: Finished: 1 information, 0 warning and 13 error messages.
Target not created
移植的时候出现这种情况怎么解决啊?
回复 支持 反对

使用道具 举报

2

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
68
金钱
68
注册时间
2014-7-11
在线时间
0 小时
发表于 2014-7-28 20:44:53 | 显示全部楼层
楼主写的很好,很给力,谢谢分享
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
发表于 2014-9-5 07:51:34 | 显示全部楼层
感谢29 32 楼主!
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
50
金钱
50
注册时间
2014-3-22
在线时间
0 小时
发表于 2014-10-10 18:14:40 | 显示全部楼层
回复【20楼】lixulongren:
---------------------------------
你好我下载进去也是白屏的请问朋友你解决了吗?mini板V2.0的
回复 支持 反对

使用道具 举报

10

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2012-8-16
在线时间
13 小时
 楼主| 发表于 2014-10-11 20:56:10 | 显示全部楼层
回复【45楼】lianjiawei18:
---------------------------------
你在原子LCD程序的基础上按照步骤做下去试试。或者把下下来的文件中的LCD的部分换成你板子上能够正确运行的LCD的程序。
暂不做硬件,投身机器学习和数据挖掘。欢迎交流!
回复 支持 反对

使用道具 举报

31

主题

106

帖子

1

精华

中级会员

Rank: 3Rank: 3

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

使用道具 举报

15

主题

114

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
242
金钱
242
注册时间
2014-7-1
在线时间
28 小时
发表于 2014-11-26 11:20:58 | 显示全部楼层
下载完程序之后要过很久才可以显示那些图片,楼主有什么好的方法么? 我那个LCD_FILL也改了啊!
回复 支持 反对

使用道具 举报

7

主题

50

帖子

0

精华

初级会员

Rank: 2

积分
100
金钱
100
注册时间
2014-6-14
在线时间
1 小时
发表于 2015-1-21 14:32:23 | 显示全部楼层
存下来备用 后面再细看
回复 支持 反对

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2015-1-14
在线时间
0 小时
发表于 2015-3-25 11:04:59 | 显示全部楼层
回复【14楼】s1q23:
---------------------------------
你移植成功了吗
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-30 02:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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