OpenEdv-开源电子网

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

EMWIN 开三缓冲切换画面闪砾

[复制链接]

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
发表于 2015-12-8 17:26:20 | 显示全部楼层 |阅读模式
5金钱
还是这个问题,这两天时不时忙些别的,但这个也仍然没有解决办法,开三缓冲的情况下两个画面切换虽然没有拉窗现象但是切换的前一秒画面会闪一下接着才出现下一个画面。 
三缓冲设置部分的程序如下, 大神们来看一下。

// 
// Buffers / VScreens 
// 
#define NUM_BUFFERS  3 // Number of multiple buffers to be used 
#define NUM_VSCREENS 1 // Number of virtual screens to be used 

void LCD_X_Config(void) { 
  int i; 

  // 
  // At first initialize use of multiple buffers on demand 
  // 
  #if (NUM_BUFFERS > 1) 
    for (i = 0; i < GUI_NUM_LAYERS; i++) { 
      GUI_MULTIBUF_ConfigEx(i, NUM_BUFFERS); 
    } 
  #endif 
  // 
  // Set display driver and color conversion for 1st layer 
  // 
  GUI_DEVICE_CreateAndLink(DISPLAY_DRIVER_0, COLOR_CONVERSION_0, 0, 0); 
  // 


int LCD_X_DisplayDriver(unsigned LayerIndex, unsigned Cmd, void * pData) { 
  case LCD_X_SHOWBUFFER: { 
    // 
    // Required if multiple buffers are used. The 'Index' element of p contains the buffer index. 
    // 
    LCD_X_SHOWBUFFER_INFO * p; 

    p = (LCD_X_SHOWBUFFER_INFO *)pData; 
    _aPendingBuffer[LayerIndex] = p->Index; 
    break; 





void LTDC_ISR_Handler(void) { 
  U32 Addr; 
  int i; 

  LTDC->ICR = (U32)LTDC_IER_LIE; 
  for (i = 0; i < GUI_NUM_LAYERS; i++) { 
    if (_aPendingBuffer >= 0) { 
      // 
      // Calculate address of buffer to be used  as visible frame buffer 
      // 
      Addr = _aAddr + _axSize * _aySize * _aPendingBuffer * _aBytesPerPixels
      // 
      // Store address into SFR 
      // 
      _apLayer->CFBAR &= ~(LTDC_LxCFBAR_CFBADD); 
      _apLayer->CFBAR = Addr; 
      // 
      // Reload configuration 
      // 
      LTDC_ReloadConfig(LTDC_SRCR_IMR); 
//      LTDC_ReloadConfig(LTDC_SRCR_VBR); 
      // 
      // Tell emWin that buffer is used 
      // 
      GUI_MULTIBUF_ConfirmEx(i, _aPendingBuffer); 
      // 
      // Clear pending buffer flag of layer 
      // 
      _aBufferIndex = _aPendingBuffer
      _aPendingBuffer = -1; 
    } 
  } 
}

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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2015-12-10 00:08:49 | 显示全部楼层
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-10 11:26:20 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
谢原子哥!
回复

使用道具 举报

13

主题

206

帖子

1

精华

高级会员

Rank: 4

积分
613
金钱
613
注册时间
2014-10-26
在线时间
32 小时
发表于 2015-12-10 13:08:49 | 显示全部楼层
你想实现什么功能? 缓冲?
学习!
回复

使用道具 举报

18

主题

112

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
金钱
363
注册时间
2015-10-29
在线时间
49 小时
 楼主| 发表于 2015-12-10 14:28:43 | 显示全部楼层
回复【4楼】q27488:
---------------------------------
只是想去掉显示图片载入时的拉窗效果,我的开机界面是显示一张图片然后进入主界面,也是一张背景图片。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 16:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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