硬汉嵌入式论坛

 找回密码
 立即注册
搜索
查看: 1513|回复: 10
收起左侧

[STM32H7] STM32H743 LVGL+LTDC+DMA2D驱动屏幕显示画面闪动

[复制链接]

2

主题

17

回帖

23

积分

新手上路

积分
23
发表于 2026-3-23 17:08:43 | 显示全部楼层 |阅读模式



此前方案已经发帖咨询过硬汉,根据当时怀疑的点,将硬件改为STM32H743,SDRAM也改为32位总线(两片16位SDRAM拼成32位)。显示已经不会出现晃动的情况。在屏幕驱动频率调到30MHz时(调高或调低都会出现画面撕裂的情况),画面显示基本正常。但是会出现明暗闪动的情况,上电运行一段时间,闪动情况会减弱或者消失。已经通过示波器检查背光波形,背光输出不存在纹波或波纹。想请教各位有什么原因可能导致这种现象,要从什么方向去分析排查?

现象如下方视频,屏幕边沿会更加明显:
屏幕闪动现象.mp3 (7.15 MB, 下载次数: 47)

此前方案可查看此帖子:

STM32H723使用LTDC驱动1280*480屏幕出现晃动
https://forum.anfulai.cn/forum.p ... 3&fromuid=43943
(出处: 硬汉嵌入式论坛)


回复

使用道具 举报

740

主题

3938

回帖

6183

积分

论坛元老

自定义头衔

积分
6183
发表于 2026-3-23 22:08:53 | 显示全部楼层
检查一下硬件驱动电源电压是否正常 ?

检查驱动时钟频率是不是太低了 ?
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124427
QQ
发表于 2026-3-24 11:52:28 | 显示全部楼层
这个要排查一个点,程序下载后完全断电1分钟,然后反复上电测试,每次都这样吗
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2026-3-24 17:53:37 | 显示全部楼层
H7 SDRAM 雙BUFFER 系統把其他中斷都關了 可以排除是性能不夠 就算你快取不開 程式亂寫都不至於有問題

调高或调低都会出现画面撕裂的情况 30Mh 到 50MHz 都是正常的  我是F7 最多也只能調到50 CPU限制

你這情況我有遇過 我們都是一次做個幾十片 10來片 就會有個一片 像你這種情況
嚴重一點的 JTAG 開啟或是關閉都會影響 畫面閃動

你問我怎麼解決的?
既然問題沒辦法解決
那把有問題那幾片丟到垃圾桶就好了

我是覺得可以往硬體線路訊號方向去查

点评

现在使用是单buffer,修正SDRAM的时钟频率后,显示都正常了。目前做了5pcs样品,暂时没有发现显示的问题。如你所说,芯片的性能确实是足够的。你的现象我觉得跟硬件相关的可能性更大。  详情 回复 发表于 2026-7-16 11:52
回复

使用道具 举报

2

主题

17

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2026-3-24 19:20:23 | 显示全部楼层
eric2013 发表于 2026-3-24 11:52
这个要排查一个点,程序下载后完全断电1分钟,然后反复上电测试,每次都这样吗

测试是在下载程序后,拔掉烧录器测试的。断电有间隔1分钟,基本上都会出现,只是有时候闪动明显,有时候不太明显。如果是晚上断电,第二天再上电,这时候闪动是最明显的。

更新一个情况:
把颜色改为RGB565,同时将lv_port_disp_init()中lv_disp_draw_buf_init()的buffer长度由10*1280改为10*480,闪动的现象就消失了。
回复

使用道具 举报

2

主题

17

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2026-3-24 19:25:30 | 显示全部楼层
hpdell 发表于 2026-3-23 22:08
检查一下硬件驱动电源电压是否正常 ?

检查驱动时钟频率是不是太低了 ?

液晶屏的电压吗?液晶屏的电压是稳定的,且无纹波干扰。驱动液晶屏的时钟频率是有点低,因为调高了之后画面会有撕裂现象。目前分辨率 1280*480,32位色,帧率:20FPS,估计时钟频率高了,内存数据更新不过来。
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124427
QQ
发表于 2026-3-25 09:10:10 | 显示全部楼层
chance 发表于 2026-3-24 19:20
测试是在下载程序后,拔掉烧录器测试的。断电有间隔1分钟,基本上都会出现,只是有时候闪动明显,有时候 ...

又想起来一个关键地方,裸机驱动,不使用GUI正常吗
回复

使用道具 举报

2

主题

17

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2026-7-16 11:48:49 | 显示全部楼层
问题最终已解决,可以正常驱动480*1280 ARGB8888,FPS 30左右,屏幕驱动频率45M。原因是SDRAM的时钟频率被其他接口配置时钟时,从100M改成了20M。由于改动的那个接口配置时备用的一直没有去使用,导致忽略时钟被修改了。

        /* 配置SDRAM时钟源*/
        RCC_PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_FMC;        
        RCC_PeriphClkInit.FmcClockSelection = RCC_FMCCLKSOURCE_PLL2;
//        RCC_PeriphClkInit.FmcClockSelection = RCC_FMCCLKSOURCE_HCLK;        //  HCLK按照system_init()的配置为120MHz
        RCC_PeriphClkInit.PLL2.PLL2M = 8;
        RCC_PeriphClkInit.PLL2.PLL2N = 200;
        RCC_PeriphClkInit.PLL2.PLL2P = 2;                        //选择PPL2P作为I2S1的时钟源,配置为100MHz
        RCC_PeriphClkInit.PLL2.PLL2Q = 2;
        RCC_PeriphClkInit.PLL2.PLL2R = 1;
        RCC_PeriphClkInit.PLL2.PLL2RGE = RCC_PLL2VCIRANGE_0;
        RCC_PeriphClkInit.PLL2.PLL2VCOSEL = RCC_PLL2VCOWIDE;
        RCC_PeriphClkInit.PLL2.PLL2FRACN = 0;
回复

使用道具 举报

2

主题

17

回帖

23

积分

新手上路

积分
23
 楼主| 发表于 2026-7-16 11:52:40 | 显示全部楼层
jming35 发表于 2026-3-24 17:53
H7 SDRAM 雙BUFFER 系統把其他中斷都關了 可以排除是性能不夠 就算你快取不開 程式亂寫都不至於有問題

...

现在使用是单buffer,修正SDRAM的时钟频率后,显示都正常了。目前做了5pcs样品,暂时没有发现显示的问题。如你所说,芯片的性能确实是足够的。你的现象我觉得跟硬件相关的可能性更大。
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
124427
QQ
发表于 2026-7-16 14:50:48 | 显示全部楼层
chance 发表于 2026-7-16 11:48
问题最终已解决,可以正常驱动480*1280 ARGB8888,FPS 30左右,屏幕驱动频率45M。原因是SDRAM的时钟频率被 ...

谢谢分享最终原因
回复

使用道具 举报

3

主题

42

回帖

51

积分

初级会员

积分
51
发表于 2026-7-21 14:20:10 | 显示全部楼层
谢谢分向技术经验!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-10-24 11:17 , Processed in 0.561121 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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