硬汉嵌入式论坛

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

[GUI] LVGL刷屏显示问题

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2025-7-29 11:44:20 | 显示全部楼层 |阅读模式
大神们求助,STM32H743+LVGL V9,STM32CubeMX配置LTDC,DMA2D刷屏;



在lv_port_disp_template.c中:

[C] 纯文本查看 复制代码
LV_ATTRIBUTE_MEM_ALIGN
static uint8_t buf_1[MY_DISP_HOR_RES * MY_DISP_VER_RES * BYTE_PER_PIXEL] __MEMORY_AT(0xC003FC00);
lv_display_set_buffers(disp, buf_1, NULL, sizeof(buf_1), LV_DISPLAY_RENDER_MODE_PARTIAL);


刷屏模式为:LV_DISPLAY_RENDER_MODE_PARTIAL时,显示就会有问题:

图1

图1

刷屏模式为:LV_DISPLAY_RENDER_MODE_FULL也就是全刷时,显示没问题,但是CPU的占用率就显著提升了;
这是为啥啊,有啥解决方法不?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-30 10:27:22 | 显示全部楼层
调用SCB_DisableDCache关闭全局Cache测试下
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2025-7-30 16:16:52 | 显示全部楼层
eric2013 发表于 2025-7-30 10:27
调用SCB_DisableDCache关闭全局Cache测试下

呜呜呜,试了一下还行不得行啊,我还试了在每次刷屏前调用SCB_CleanInvalidateDCache()也是没用;
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2025-7-31 08:50:00 | 显示全部楼层
wantee 发表于 2025-7-30 16:16
呜呜呜,试了一下还行不得行啊,我还试了在每次刷屏前调用SCB_CleanInvalidateDCache()也是没用;

那不是Cache问题,移植可能有问题了。不用DMA2D试试
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2025-7-31 14:13:38 | 显示全部楼层
eric2013 发表于 2025-7-31 08:50
那不是Cache问题,移植可能有问题了。不用DMA2D试试

移植的话是直接下载的官方PACK安装到keil里的;
pic_3.png



pic_1.png
测试了一下各种刷屏方式:
[C] 纯文本查看 复制代码
  ltdc_init();
  Beep_Init();
  LED_Init();  
  while (1)
  {
	  static uint8_t flag = 0;
	  flag = !flag;
	  
	  for (int i = 0; i < 2500; i++)
	  {
		  if ( i < 1250)
			color[i] = flag ? RED : BLUE;
		  else
			color[i] = flag ? BLUE : RED;
	  }	  
	  
	  uint16_t k = 0;
	  for (uint8_t y = 20; y < 70; y++)
	  {
		  for (uint8_t x = 20; x < 70; x++)
		  {
			  ltdc_draw_point(x, y, color[k++]);
		  }
	  }
	  
	  ltdc_color_fill(90, 20, 140, 70, color);
	  
	  ltdc_fill(160, 20, 210, 45, flag ? RED : BLUE);
	  ltdc_fill(160, 45, 210, 70, flag ? BLUE : RED);
	  
	  HAL_Delay(500);
//	  ltdc_clear(WHITE);
//	  HAL_Delay(100);
  }

运行下来是这样的:
video1.gif
发现中间的刷新有点问题,感觉缺了最后一两行一样。
但LVGL的刷屏函数中所有的刷屏方式都试了:
pic_2.png
结果还是不行,还是刷屏有问题。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 00:07 , Processed in 0.063806 second(s), 30 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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