OpenEdv-开源电子网

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

【申酷-emWin移植手册和规范代码,让大家都玩上emWin】STM32F4+emWin5.16 自适应3.0寸 4.3寸 7寸屏

  [复制链接]

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
发表于 2013-1-9 14:31:07 | 显示全部楼层 |阅读模式

                                       emWin5.xx移植手册

                                                                               ------------by Eric2013

重要说明
(0)
    程序下载和移植手册pdf格式 看2楼。
(1)      
emWin手册里面有这样一句话:“驱动接口的改变始于emWin V5。不再支持针对emWin V4 或更早版本开发的老显示驱动”。

(2)      如果不使用V5以后版本的新特性,基本和以前的版本使用是一样的,也就是说,大家用V5以前版本实现的功能,直接升级到现有的版本,基本可以正常运行。

(3)      本打算为M3也提供一个移植说明,但是用STM32F103ZET6+ra8875跑了一下,效果不好,速度慢是一方面,关键是SRAM太小了,官方的VC6.0 DEMO开辟了400K动态内存。现在用F4开辟了130K动态内存,仍然有几个例子不能跑。

(4)      尽管emWin提供了大部分屏的驱动,但是不能包含所有,这篇移植文档就因此而生。不管是emWin已经支持的,还是没有提供支持的,均可采用这种方法。

(5)      提供了一个非常好的触摸滤波方法,此方法可以有效的滤除飞点。视频和图片请看http://www.openedv.com/posts/list/11397.htm

一.移植前的准备工作

(1)      MDK4.54版本里面的有emWin5.16的库,大家注意一下这个文件夹里面的emWin库。



可以看到支持M4GUI库,所有就用这个库,大家都知道M4相对于M3,主要是增加了浮点运算,但是emWin手册里面有这样一个说明。

        



手册里面明确的说明了emWin的库,绝对无浮点使用。所有如果使用M3emWin库也是没有问题的。

(2)      MDK要添加下面的LICENSE,如果不添加是不能用emWin的库。



 添加方法也很简单,用大家注册MDK时的---机就可以的,不贴全图了。

 

 

 



(3)      要添加MDKM4的浮点支持,添加方法也很简单,提供的例程里面就有,看一下就会了,这里不再做说明了。

二.现在就可以开始移植工作了。

     主要添加下图所示的几个文件

    



     下面就对这些文件进行详细的说明

(1)      bsp_touch.c这个文件主要提供触摸的驱动函数,以便emWin

GUI_TOUCH_X_MeasureX

GUI_TOUCH_X_MeasureY

两个函数的调用。

特别注意,这里改变触摸的滤波方法,以前用去点前几个点和后几个点,然后中间数值取平均的方法,效果并不理想,不用有效的滤除飞点,这里使用一个新的方法。

a、  emWin里面使用使用触摸的中断方式,效果并不好,所以这里使用查询,查询此引脚的电平,这样可以避免不必要的调用

     GUI_TOUCH_X_MeasureX

GUI_TOUCH_X_MeasureY

 两个函数。

b、  触摸滤波,主要是滤的是飞点,就应为这些飞点的存在,才使得触摸很不稳定。

下面的这个函数,大家应该很熟悉,就是滤除前几个点和后面几个点,然后中间几个点取平均

/* 读取次数  根据实际情况修改 */

#define XPT2046_READ_TIMES    5

/* 丢弃值  */       

#define XPT2046_LOST_VAL      1            

uint16_t TOUCH_DataFilter(uint8_t _ucCh)

{

         uint16_t i, j;

         uint16_t buf[XPT2046_READ_TIMES];

         uint16_t usSum;

         uint16_t usTemp;

 

         /*读取READ_TIMES次数据 */

         for(i=0; i < XPT2046_READ_TIMES; i++)

         {

                   if (g_ChipID == IC_8875)

             {

                            if(_ucCh == ADC_CH_X)

                            {

                                     buf = RA8875_TouchReadX();

                            }

                            else

                            {

                                     buf = RA8875_TouchReadY();      

                            }

                   }

                   else

                   {

                            buf = TSC2046_ReadAdc(_ucCh);         

                   }       

         }

        

         /*升序排列 */                                   

         for(i = 0; i < XPT2046_READ_TIMES - 1; i++)

         {

                   for(j = i + 1; j < XPT2046_READ_TIMES; j++)

                   {

                            if(buf > buf[j])

                            {

                                     usTemp = buf;

                                     buf = buf[j];

                                     buf[j] = usTemp;

                            }

                   }

         }

                    

         usSum = 0;

 

         /*求和 */

         for(i = XPT2046_LOST_VAL; i < XPT2046_READ_TIMES - XPT2046_LOST_VAL; i++)

         {

                   usSum += buf;

         }

         /*求平均 */

         usTemp = usSum / (XPT2046_READ_TIMES - 2 * XPT2046_LOST_VAL);

 

         return usTemp;

}

 

下面的这个函数就很重要了,要滤除飞点,就全靠它了

/* 误差范围 根据实际情况调节误差范围 */ 

uint8_t ADC_ERR_RANGE = 5;

uint8_t TOUCH_ReadAdcXY(int16_t *_usX, int16_t *_usY)

{

         uint16_t iX1, iY1;

        uint16_t iX2, iY2;

         uint16_t iX, iY;

 

        iX1 = TOUCH_DataFilter(ADC_CH_X);

         iY1 = TOUCH_DataFilter(ADC_CH_Y);

         iX2 = TOUCH_DataFilter(ADC_CH_X);

         iY2 = TOUCH_DataFilter(ADC_CH_Y);

        

         iX = TOUCH_Abs(iX1 - iX2);

         iY = TOUCH_Abs(iY1 - iY2);

        

         /*前后两次采样在+-ERR_RANGE */ 

   if ((iX <= ADC_ERR_RANGE) && (iY <= ADC_ERR_RANGE))

   {      

                  

                   if(g_ucGPIX == 1)

                   {

                            *_usY = (iX1 + iX2) / 2;

                 *_usX = (iY1 + iY2) / 2;              

                   }

                   else

                   {

                            *_usX = (iX1 + iX2) / 2;

                 *_usY = (iY1 + iY2) / 2;    

                   }

        

 

       return 1;

    }

         else

         {

                   return 0;

         }         

}

触摸的驱动就这些东西,详细的使用看例程级可以,然后在文件GUI_X_Touch_Analog.c里面调用就可以了

int GUI_TOUCH_X_MeasureX(void)

{

         TOUCH_SCAN();

         return(g_tTP.usAdcNowX);              

}

 

 

int GUI_TOUCH_X_MeasureY(void)

{       

         return(g_tTP.usAdcNowY);

}

 

2 下面的说明就很重要了,这个是实现emWin移植成功的关键。

在文件夹DisplayDriver有这三个文件,这里我们使用第一个。



打开这个文件,会发现里面的函数很面熟,是的,基本和UCGUI3.98里面的差不多,但是这个里面的功能更加全面。

a、 如果不使用优化,直接提供一个打点和读点的函数就可以了,如果想优化一下,就继续往下看。

优化需要修改的函数有下面几个。

/*

********************************************************************

*

*      _DrawHLine

*

*******************************************************************

*/

static void _DrawHLine  (GUI_DEVICE * pDevice, int x0, int y,  int x1) {

  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {

   for (; x0 <= x1; x0++) {

     _XorPixel(pDevice, x0, y);

    }

  } else {

  #if emWin_Optimize   //这里使用了一个宏定义,是否使用优化

       //LCD8875_DrawHLine(x0, y, x1, LCD_COLORINDEX);

         s_ucRA8875BusyNow = 1;

         LCD_DrawLineH(x0, y, x1, LCD_COLORINDEX);

         s_ucRA8875BusyNow = 0;

 #else

   LCD_PIXELINDEX ColorIndex;

   ColorIndex = LCD__GetColorIndex();

   for (; x0 <= x1; x0++) {

     _SetPixelIndex(pDevice, x0, y, ColorIndex);

    }

 #endif 

  }  

}

 

/*

*************************************************************************

*

*      _DrawVLine, not optimized

*

*************************************************************************

*/

static void _DrawVLine  (GUI_DEVICE * pDevice, int x, int y0,  int y1) {

  if (GUI_Context.DrawMode & LCD_DRAWMODE_XOR) {

   for (; y0 <= y1; y0++) {

     _XorPixel(pDevice, x, y0);

    }

  } else {

 

         #if emWin_Optimize

//               LCD8875_DrawVLine(x, y0, y1, LCD_COLORINDEX);

                   s_ucRA8875BusyNow = 1;

                   LCD_DrawLineV(x, y0, y1, LCD_COLORINDEX);

                   s_ucRA8875BusyNow = 0;

         #else

                   LCD_PIXELINDEX ColorIndex;

                   ColorIndex = LCD__GetColorIndex();

             for (; y0 <= y1; y0++) {

               _SetPixelIndex(pDevice, x, y0, ColorIndex);

             }

         #endif

  }

}

 

/*

**************************************************************************

*

*      _FillRect

*

**************************************************************************

*/

static void _FillRect(GUI_DEVICE * pDevice, int x0, int y0, int x1, int y1)

{

#if emWin_Optimize

        

   if (g_ChipID == IC_8875)

         {

                   s_ucRA8875BusyNow = 1;

                   BTE_SetTarBlock(x0, y0, y1-y0+1, x1-x0+1, 0);  /* 设置BTE位置和宽度高度 */

BTE_SetOperateCode(0x0C);                                  /* 设定BTE 操作码和光栅运算码  REG[51h] Bit[3:0] = 0Ch */

                   RA8875_SetFrontColor(LCD_COLORINDEX);    /* 设置BTE前景色   */

                   BTE_Start();                                                    /* 开启BTE 功能     */

                   BTE_Wait();                                                     /* 等待操作结束     */

                   s_ucRA8875BusyNow = 0;               

         }

         else

         {

                   for (; y0 <= y1; y0++)

                   {

                            _DrawHLine(pDevice, x0, y0, x1);

                  }                

         }

        

#else

         for (; y0 <= y1; y0++)

         {

                   _DrawHLine(pDevice, x0, y0, x1);

         }

#endif

}

 

下面的这个函数优化很重要,要想窗口打开的快点,下面的必须优化!!!!!!!

/*

**************************************************************************

*

*      Draw Bitmap 16 BPP, not optimized

*

**************************************************************************

*/

static void _DrawBitLine16BPP(GUI_DEVICE * pDevice, int x, int y, U16 const GUI_UNI_PTR * p, int xsize)

{

#if emWin_Optimize

        

//               RA8875_SetCursor(x,y);

//               RA8875_REG = 0x02;

//               for (;xsize > 0; xsize--,p++)

//               {

//                         RA8875_RAM = *p;

//               }

         s_ucRA8875BusyNow = 1;

         LCD_DrawHColorLine(x, y, xsize, (uint16_t *)p);

         s_ucRA8875BusyNow = 0;      

#else

         for (;xsize > 0; xsize--, x++, p++)

         {

                   _SetPixelIndex(pDevice, x, y, *p);

         }

#endif

}

3)驱动函数写好以后,就是配置函数了,配置函数写好了,emWin就可以跑起来了。

     写贴一个官方的配置流程。

    



     下面就按照这个流程进行配置,如果没有说到的,看例程就可以。

     /* Define the available number of bytes available for the GUI */

#define GUI_NUMBYTES  130000

/* Define the average block size */

#define GUI_BLOCKSIZE 0x80

emWin分配动态内存

/*********************************************************************

*

*      GUI_X_Config

*

* Purpose:

*  Called during the initialization process in order to set up the

*  available memory for the GUI.

**********************************************************************

*/

void GUI_X_Config(void)

{

         /* 32 bit aligned memory area */

         static U32 aMemory[GUI_NUMBYTES / 4];

        

         /*  Assign memory to emWin */

         GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);

         GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);

}

 

然后就是最关键的LCD_X_Config,这里对74.3 3.0寸都做了支持。 

/*

****************************************************************************

*

*      LCD_X_Config

*

* Purpose:

*  Called during the initialization process in order to set up the

*  display driver configuration.

*

****************************************************************************  

*/

void LCD_X_Config(void)

{                

         /* Set display driver and color conversion for 1st layer */

         GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER, COLOR_CONVERSION, 0, 0);

 

   if (g_ChipID == IC_8875)

         {

                   if (g_ucGPIX == 1)    /*    GPIX = 1 4.3  480x272 */

                   {

                            /* Display driver configuration */

                            LCD_SetSizeEx    (0, 480, 272);

                            LCD_SetVSizeEx   (0, 480, 272);

                           

                            /* Touch calibration */

                            GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 479, 985,  50);

                            GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 271, 920,  100);

                   }

                   else         /*    GPIX = 0  7  800*480 */

                   {

                            /* Display driver configuration */

                            LCD_SetSizeEx    (0, XSIZE_PHYS, YSIZE_PHYS);

                            LCD_SetVSizeEx   (0, VXSIZE_PHYS, VYSIZE_PHYS);

                   //      LCD_SetVRAMAddrEx(0, (void *)VRAM_ADDR);

                           

                            /* Touch calibration */

                   //      GUI_TOUCH_SetOrientation(0); 

                            GUI_TOUCH_Calibrate(GUI_COORD_X, 0, XSIZE_PHYS - 1, GUI_TOUCH_AD_LEFT, GUI_TOUCH_AD_RIGHT);

                            GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, YSIZE_PHYS - 1, GUI_TOUCH_AD_TOP, GUI_TOUCH_AD_BOTTOM);            

                   }

         }

         else

         {

                   LCD_SetSizeEx    (0, 400, 240);

                   LCD_SetVSizeEx   (0, 400, 240);

                  

                   /* Touch calibration */

                   GUI_TOUCH_Calibrate(GUI_COORD_X, 0, 399, 300, 3600);

                   GUI_TOUCH_Calibrate(GUI_COORD_Y, 0, 239, 273,  3671);      

         }

 

}

 

大家根据自己的屏,配置屏的大小和触摸校准就可以了。到这里移植就算结束了。

                                                                                        

 

 

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

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 15:34:54 | 显示全部楼层
我嘞个去 短短时间下载151次,没人顶贴,压力很大。
回复 支持 1 反对 0

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 14:37:28 | 显示全部楼层
移植手册:

emWin5.xx移植手册2.pdf

383.12 KB, 下载次数: 6264

回复 支持 反对

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 14:38:57 | 显示全部楼层
此程序没有使用RTOS,方便不会操作系统的同学移植。

实验十:emWin.zip

12.33 MB, 下载次数: 24930

回复 支持 反对

使用道具 举报

20

主题

187

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
288
金钱
288
注册时间
2011-12-14
在线时间
0 小时
发表于 2013-1-9 16:03:41 | 显示全部楼层
   真是好东西,感谢楼主!下载学习了!
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2013-1-9 16:11:46 | 显示全部楼层
帮顶,辛苦了。谢谢。
呵呵。
回复 支持 反对

使用道具 举报

12

主题

432

帖子

0

精华

高级会员

Rank: 4

积分
729
金钱
729
注册时间
2012-6-21
在线时间
59 小时
发表于 2013-1-9 16:12:07 | 显示全部楼层
用谁家的STM32F4XX开发板?
呵呵。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-1-9 16:13:41 | 显示全部楼层
顶!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 16:45:12 | 显示全部楼层
回复【7楼】无名氏:
---------------------------------
买个核心板就行的,网上应该很多(比如官方的那个就很不错),自己外接一下线。我用的是armfly的。
回复 支持 反对

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 16:46:12 | 显示全部楼层
回复【9楼】正点原子:
---------------------------------
一直在等待shanyan兄的电容屏,有了他的电容屏,就可以搞了。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-1-9 16:50:34 | 显示全部楼层
回复【11楼】Eric2013:
---------------------------------
可以移植到M3上不?
不知道我们的战舰板能不能跑,呵呵。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-1-9 16:53:12 | 显示全部楼层
回复【12楼】正点原子:
---------------------------------
肯定能跑,就是没有原子兄的板子。
回复 支持 反对

使用道具 举报

259

主题

806

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1887
金钱
1887
注册时间
2012-10-28
在线时间
353 小时
发表于 2013-1-12 11:35:28 | 显示全部楼层
 真是好东西,感谢楼主!下载学习了!
回复 支持 反对

使用道具 举报

259

主题

806

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1887
金钱
1887
注册时间
2012-10-28
在线时间
353 小时
发表于 2013-1-12 11:44:26 | 显示全部楼层


很好很好哦
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
51
金钱
51
注册时间
2012-8-1
在线时间
0 小时
发表于 2013-1-14 10:17:12 | 显示全部楼层
感谢楼主!学习了
回复 支持 反对

使用道具 举报

7

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2012-10-7
在线时间
0 小时
发表于 2013-1-19 16:30:19 | 显示全部楼层
支持一下,谢谢分享,过阵子移植到板子上试试。
D&K电子工作室:http://design-kernel.taobao.com/ 
GSM控制装置、MP3模块、数码相机DIY模组、网络控制装置、语音识别控制装置、智能MP3控制板、开发板
* 微博:    http://weibo.com/u/2613869605
* QQ群:253682599
* 业务QQ:1648969431
回复 支持 反对

使用道具 举报

2

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-4-24
在线时间
10 小时
发表于 2013-2-2 09:53:24 | 显示全部楼层
这个一定要顶
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-2-2 15:58:16 | 显示全部楼层
我想知道,M3的能用不?
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-2-2 16:14:44 | 显示全部楼层
回复【19楼】Tardis:
---------------------------------
能用
回复 支持 反对

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2013-2-2 16:19:31 | 显示全部楼层
回复【19楼】Tardis:
---------------------------------
emWIN  是什么东西? 感觉像GUI?
回复 支持 反对

使用道具 举报

头像被屏蔽

275

主题

327

帖子

0

精华

禁止访问

积分
1065
金钱
1065
注册时间
2011-7-7
在线时间
34 小时
发表于 2013-2-4 12:43:25 | 显示全部楼层
niu
回复 支持 反对

使用道具 举报

46

主题

1579

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1970
金钱
1970
注册时间
2011-7-17
在线时间
4 小时
发表于 2013-2-4 14:44:56 | 显示全部楼层
回复【21楼】tian123chi:
---------------------------------
emWin就是ucgui,只不过是高级一点版本而已,界面比较漂亮,可是吃RAM的,M3加一个外扩sram,应该能运行。
Time?And?Relative?Dimension?In?Space.
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2012-9-5
在线时间
0 小时
发表于 2013-2-16 21:45:16 | 显示全部楼层
这个在IAR上可以用嘛
回复 支持 反对

使用道具 举报

5

主题

166

帖子

2

精华

高级会员

Rank: 4

积分
506
金钱
506
注册时间
2012-10-8
在线时间
0 小时
 楼主| 发表于 2013-2-17 08:28:23 | 显示全部楼层
回复【24楼】liubinghui:
---------------------------------
我提供的这个不可以,这个库是用MDK生成的, 不知道官方有没有提供IAR版本的库。
如果有的话,用相似的方法移植一下就可以了
回复 支持 反对

使用道具 举报

1

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
90
金钱
90
注册时间
2013-5-21
在线时间
13 小时
发表于 2013-5-21 16:43:50 | 显示全部楼层
强人必须顶!!!!!!!
回复 支持 反对

使用道具 举报

57

主题

431

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
880
金钱
880
注册时间
2011-12-25
在线时间
11 小时
发表于 2013-5-21 17:38:07 | 显示全部楼层
移植M3没有必要吧,主频很低。。就像51跑UCOS一样。
很喜爱电子行业
回复 支持 反对

使用道具 举报

8

主题

53

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2012-5-26
在线时间
0 小时
发表于 2013-5-23 13:27:26 | 显示全部楼层
 必须支持啊。最近就要用到GUI,更巧的是我也是F4啊。话说F4真是强大。
回复 支持 反对

使用道具 举报

3

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2012-8-6
在线时间
0 小时
发表于 2013-5-27 13:33:42 | 显示全部楼层
支持老兄一下。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-6-8
在线时间
0 小时
发表于 2013-6-8 16:10:30 | 显示全部楼层
楼主,请问你的那些GUIDRV_xx文件是在哪里下载的啊?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-6-8
在线时间
0 小时
发表于 2013-6-8 16:11:04 | 显示全部楼层
有没有移植好的SSD1289控制器的程序啊?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2013-6-8
在线时间
0 小时
发表于 2013-6-8 16:12:14 | 显示全部楼层
在你的程序中找不到LCDConf_CompactColor_16.h,还有就是下面程序中的GUIDRV_COMPACT_COLOR_16代表什么啊?
void LCD_X_Config(void) {
  //
  // Set display driver and color conversion
  //
  GUI_DEVICE_CreateAndLink(GUIDRV_COMPACT_COLOR_16, // Display driver
                           GUICC_M565,              // Color conversion
                           0, 0);
  //
  // Display driver configuration
  //
  LCD_SetSizeEx(0, 240, 320);                       // hysical display size in pixels
}
回复 支持 反对

使用道具 举报

0

主题

23

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2011-3-5
在线时间
0 小时
发表于 2013-6-11 06:26:12 | 显示全部楼层
支持一下,谢谢分享,
回复 支持 反对

使用道具 举报

0

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
62
金钱
62
注册时间
2013-5-3
在线时间
7 小时
发表于 2013-6-17 11:24:13 | 显示全部楼层
十分感谢 弄完了ucgui3.9a  玩玩这个看看 呵呵
回复 支持 反对

使用道具 举报

57

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
451
金钱
451
注册时间
2013-5-23
在线时间
46 小时
发表于 2013-7-10 16:35:58 | 显示全部楼层
这个顶
回复 支持 反对

使用道具 举报

1

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2013-7-31
在线时间
3 小时
发表于 2013-8-6 00:02:31 | 显示全部楼层
ssd1289的怎么跑着有硬件错误,楼主能发份emwin5.12源码吗?
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-8-2
在线时间
0 小时
发表于 2013-9-12 09:41:01 | 显示全部楼层
非常好啊,就是怎么老是下载失败
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2013-10-29
在线时间
0 小时
发表于 2013-10-29 10:43:37 | 显示全部楼层

我下了, 强势顶起

 

回复 支持 反对

使用道具 举报

4

主题

34

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
220
金钱
220
注册时间
2013-6-28
在线时间
0 小时
发表于 2013-11-4 11:37:17 | 显示全部楼层
       为什么我编译后运行提示HardFalut?
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
112
金钱
112
注册时间
2011-12-13
在线时间
25 小时
发表于 2013-11-13 16:19:47 | 显示全部楼层
很好,没触摸的能跑吗?
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
发表于 2013-12-17 13:45:35 | 显示全部楼层
回复【楼主位】Eric2013:
---------------------------------
emWin是开源的吗?像ucgui一样的?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2013-12-17 19:43:27 | 显示全部楼层
回复【41楼】pizhihui1993:
---------------------------------
不开源
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

32

主题

195

帖子

2

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2013-7-23
在线时间
1 小时
发表于 2013-12-17 20:04:45 | 显示全部楼层
额 好吧,还是ucgui吧
回复 支持 反对

使用道具 举报

45

主题

108

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
334
金钱
334
注册时间
2013-5-22
在线时间
13 小时
发表于 2013-12-18 11:47:09 | 显示全部楼层
转载请注明出处
回复 支持 反对

使用道具 举报

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
发表于 2013-12-18 12:47:28 | 显示全部楼层
回复【11楼】Eric2013:
---------------------------------
淘宝上的那个shanyan?深圳的?....那家店质量很......-_-!!!!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
21
金钱
21
注册时间
2014-1-11
在线时间
0 小时
发表于 2014-1-13 13:28:51 | 显示全部楼层
呵呵,灰常感谢啊,很好啊
回复 支持 反对

使用道具 举报

14

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
213
金钱
213
注册时间
2014-1-14
在线时间
18 小时
发表于 2014-1-14 07:08:38 | 显示全部楼层
求助:emwin 5.22 使用外部存储1MRAM,
#define EXT_SRAM_ADDR   ((uint32_t)0x64000000)
#define GUI_NUMBYTES  1024*700
static U32 *aMemory;
aMemory = (U32 *)EXT_SRAM_ADDR;
/*  Assign memory to emWin */
GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);

运行过程中,GUI_Init()过不去。而设置成内部RAM,则正常。
/* 32 bit aligned memory area */
  static U32 aMemory[GUI_NUMBYTES / 4];
 
  /*  Assign memory to emWin */
  GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES);
  GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE);
望高手解答下。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2012-5-22
在线时间
3 小时
发表于 2014-2-13 15:56:31 | 显示全部楼层
      顶,原子的7寸屏也能用?
回复 支持 反对

使用道具 举报

38

主题

128

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
300
金钱
300
注册时间
2013-8-19
在线时间
0 小时
发表于 2014-4-5 09:59:13 | 显示全部楼层
回复【3楼】Eric2013:
---------------------------------
有硬件的链接电路么,你是直接拿液晶用16为数据线连FSMC上,通过8080方式联接?
回复 支持 反对

使用道具 举报

26

主题

202

帖子

3

精华

高级会员

Rank: 4

积分
808
金钱
808
注册时间
2014-3-4
在线时间
10 小时
发表于 2014-4-5 10:21:27 | 显示全部楼层
顶起
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 09:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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