硬汉嵌入式论坛

 找回密码
 立即注册
查看: 7673|回复: 11
收起左侧

[emWin] 显示Alpha效果的时候出现问题

[复制链接]

1

主题

30

回帖

1

积分

新手上路

积分
1
发表于 2014-3-12 13:00:16 | 显示全部楼层 |阅读模式
maduidui1.jpg

移植的是STEmwin5.22,也就是st最新的,平台是vet6,stm32f103
就是按照官方的说明书进行学习的时候,发现显示的结果和预期的不一样

GUI_EnableAlpha(1);
  GUI_SetBkColor(GUI_WHITE);
  GUI_Clear();
  GUI_SetColor(GUI_BLACK);
  GUI_DispStringHCenterAt("Alphabeending",45,41);
  GUI_SetColor(GUI_MAKE_ALPHA(0x40,GUI_RED));
  GUI_FillRect(0,0,49,49);                        
  GUI_SetColor(GUI_MAKE_ALPHA(0x80,GUI_GREEN));
  GUI_FillRect(20,20,69,69);
  GUI_SetColor(GUI_MAKE_ALPHA(0xc0,GUI_BLUE));
  GUI_FillRect(40,40,89,89);
上面的代码都是直接在pdf上面copy过来的, maduidui.jpg
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2014-3-12 13:41:33 | 显示全部楼层
1. 你的读点函数是不是有问题啊,试试显示游标,看看有拖影没有。
2. 看一下这个教程,这个里面有显示这个例子 https://forum.anfulai.cn/forum.php?mod=viewthread&tid=1785
回复

使用道具 举报

1

主题

30

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-3-12 15:31:56 | 显示全部楼层
图形显示 - 副本.rar (14.06 MB, 下载次数: 209) 唉。。。试了半天,还是不行。。。。
版主能不能帮忙看下啊啊
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2014-3-12 18:39:30 | 显示全部楼层

回 mahongtu 的帖子

mahongtu:唉。。。试了半天,还是不行。。。。
版主能不能帮忙看下啊啊 (2014-03-12 15:31) 
好的,我下载下来给你看看
回复

使用道具 举报

1

主题

30

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-3-13 10:50:17 | 显示全部楼层
问题解决了,版主,谢谢哈,虽然没有找到问题所在,但是至少解决了
我用了GUIDRV_Template.c按照https://forum.anfulai.cn/forum.php?mod=viewthread&tid=1545 做了更改,看来用它自己的显示驱动,还是有点问题,估计是您说的问题,读点函数有问题
回复

使用道具 举报

1

主题

30

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2014-3-13 10:51:34 | 显示全部楼层
有时间在看看他自己的run-time 可配置驱动应该怎么用吧
运行时可配置驱动和编译时可配置驱动到底啥区别?
回复

使用道具 举报

4

主题

50

回帖

62

积分

初级会员

积分
62
发表于 2018-1-24 11:49:05 | 显示全部楼层
我现在移植EMWIN5.32B的也是这样子,好像用官方默认的读点是不行的,要用GUIDRV_Template.c里面的定义自己的打点读点函数,不然ILI9341  Alpha混合永远调不通的

有谁用过ILI9341连续读点函数,下面的驱动该怎么写,欢迎交流
static void LcdReadDataMultiple(U16 * pData, int NumItems) {          
  while (NumItems--) {
                *pData++ =LCD_9341->LCD_RAM;
  }
}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-1-24 14:24:08 | 显示全部楼层
bebj2009 发表于 2018-1-24 11:49
我现在移植EMWIN5.32B的也是这样子,好像用官方默认的读点是不行的,要用GUIDRV_Template.c里面的定义自己 ...

下载我们论坛置顶帖V5板子里面任意一个emWin例子,有一个ili9488驱动,跟9341一样。
然后看GUIDRV_Template.c给的那个16bpp函数即可。
回复

使用道具 举报

4

主题

50

回帖

62

积分

初级会员

积分
62
发表于 2018-1-24 14:31:18 | 显示全部楼层
谢谢版主,实力派很给力
回复

使用道具 举报

4

主题

50

回帖

62

积分

初级会员

积分
62
发表于 2018-1-24 15:30:19 | 显示全部楼层
请问各位坛友,你我上面提到的LcdReadDataMultiple这个函数如果是ILI9341的话,连续读点该如何处理,不然混色有问题,下面是我的全部配置,好像我发现用下面这一种配置底层驱动要快一些,如果用GUIDRV_Template.c里面自己定义的要慢一些,不知怎么回事,如有用下面这种配置的,连续读点怎么更改,谢谢

void LCD_X_Config(void) {

  GUI_DEVICE * pDevice;
  CONFIG_FLEXCOLOR Config = {0};
  GUI_PORT_API PortAPI = {0};
  pDevice = GUI_DEVICE_CreateAndLink(GUIDRV_FLEXCOLOR, GUICC_565, 0, 0);


  LCD_SetSizeEx (0, XSIZE_PHYS , YSIZE_PHYS);
  LCD_SetVSizeEx(0, VXSIZE_PHYS, VYSIZE_PHYS);
       

  Config.FirstCOM = 0;                                         
  Config.FirstSEG = 0;                                          
  Config.Orientation =  GUI_MIRROR_X|GUI_SWAP_XY;                     
  Config.RegEntryMode=0;
Config.NumDummyReads = 2;                                   
  GUIDRV_FlexColor_Config(pDevice, &Config);

  PortAPI.pfWrite16_A0  = LcdWriteReg;
  PortAPI.pfWrite16_A1  = LcdWriteData;
  PortAPI.pfWriteM16_A1 = LcdWriteDataMultiple;
  PortAPI.pfReadM16_A1  = LcdReadDataMultiple;//就是这个
  GUIDRV_FlexColor_SetFunc(pDevice, &PortAPI, GUIDRV_FLEXCOLOR_F66709, GUIDRV_FLEXCOLOR_M16C0B16 );                //选择的也是ILI9341类型的,默认的GUIDRV_FLEXCOLOR_F66709
}



static void LcdReadDataMultiple(U16 * pData, int NumItems) {       
  while (NumItems--) {
                *pData++ = LCD_9341->LCD_RAM;  
  }
}



回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2018-1-25 01:10:06 | 显示全部楼层
bebj2009 发表于 2018-1-24 15:30
请问各位坛友,你我上面提到的LcdReadDataMultiple这个函数如果是ILI9341的话,连续读点该如何处理,不然混 ...

GUIDRV_Template.c是自定义驱动,仅使用这个文件即可,无需再使用官方自带的这种GUIDRV_FlexColor,不灵活。参考我们的那个,把填充色,水平线和垂直线也优化了。
回复

使用道具 举报

2

主题

569

回帖

575

积分

金牌会员

积分
575
发表于 2018-1-25 08:32:55 | 显示全部楼层
可以尝试把FSMC通过DMA M2M方式挂载,刷图跟方便,最近正在做这个
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-20 05:12 , Processed in 0.051489 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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