硬汉嵌入式论坛

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

使用STM32F429驱动4.3寸LCD(800*480),使用SDRAM,出现花屏

[复制链接]

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2024-6-3 10:40:11 | 显示全部楼层 |阅读模式
使用STM32F429驱动4.3寸LCD(800*480),使用SDRAM,出现花屏,求帮助!!

使用的是安富莱的智能家居的例程,在此基础上更改了了SDRAM和LTDC的配置,目前屏幕能正常显示,区别是SDRAM使用的是16位的16M的,
目前想在主界面的例程WM_TIMER中重绘窗口使用 WM_InvalidateWindow(pMsg->hWin);,这时候会出现花屏,原来的程序中有显示日期和时间的函数Caculate_RTC(pMsg);,如果时间更改了也会出现花屏,
如果不重绘窗口(即不显示时间或者时间不变),就不会进入WM_PAINT下的函数,就不会出现花屏,求助问题在哪,是不是和SDRAM是16位的有关,多谢!!!
目前的图层使用的是_CM_RGB888的模式出现的上述问题,如果改为_CM_RGB565的模式不会出现,但是显示的颜色效果就不是很好,渐变颜色会有层次感。

回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-6-3 10:47:50 | 显示全部楼层
使用的是“基于STM32的硬件RGB888接口实现emWin的快速刷新方案,32位色或24位色效果艳丽”里的方案,使用的是ucos的版本
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-6-3 11:06:50 | 显示全部楼层
使用ARGB8888试试
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-6-3 13:08:32 | 显示全部楼层

也是同样效果,不刷新屏幕的时候是没问题的,重绘就花屏了,重新配置LTDC的时钟也不可以~
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
 楼主| 发表于 2024-6-3 15:28:24 | 显示全部楼层
问题解决了,更改SDRAM的配置就好了,将        FMC_SDRAMInitStructure.FMC_SDClockPeriod  = FMC_SDClock_Period_3;更改为 FMC_SDClock_Period_2就可以了!
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-6-20 11:12:56 | 显示全部楼层
你好!请问你的内部帧缓冲和GUI动态缓存都放在外部SDRAM里吗?我现在碰到一个问题,如果把GUI动态缓存也放到外部SDRAM里的话,就会进HARDFAULT,放在内部RAM就正常。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-6-20 11:17:16 | 显示全部楼层
a515509429 发表于 2024-6-3 15:28
问题解决了,更改SDRAM的配置就好了,将        FMC_SDRAMInitStructure.FMC_SDClockPeriod  = FMC_SDClock_Period ...

你好!请问你的GUI帧缓存和GUI动态缓存都放在外部SDRAM里吗?我现在碰到一个问题,就是GUI动态缓存如果 放在外部SDRAM里会HARDFAULT,放在内部RAM就正常。可以看一下你的SDRAM设置和GUIConf设置吗?谢谢
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-6-20 11:49:43 | 显示全部楼层
hilley 发表于 2024-6-20 11:17
你好!请问你的GUI帧缓存和GUI动态缓存都放在外部SDRAM里吗?我现在碰到一个问题,就是GUI动态缓存如果  ...


你的是HAL的还是标准库的,如果是标准库可以看下我们这个
https://forum.anfulai.cn/forum.php? ... 9834&extra=page%3D1

如果是HAL可以看下这个
https://forum.anfulai.cn/forum.p ... &extra=page%3D1
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-6-21 20:29:10 | 显示全部楼层
eric2013 发表于 2024-6-20 11:49
你的是HAL的还是标准库的,如果是标准库可以看下我们这个
https://forum.anfulai.cn/forum.php? ... 9834 ...

感谢硬汉哥的回复,我用了V6的裸机模板,把LTDC和SDRAM(16bit)改成我板子上的参数,结果还是同样的问题,GUI动态缓存改到外部SDRAM的话,就会进HARDFAULT。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-6-22 09:44:31 | 显示全部楼层
hilley 发表于 2024-6-21 20:29
感谢硬汉哥的回复,我用了V6的裸机模板,把LTDC和SDRAM(16bit)改成我板子上的参数,结果还是同样的问题 ...

调节下SDRAM的时序参数试试,你当前的配置,可能SDRAM运行干扰略大。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2024-8-4 17:33:41 | 显示全部楼层
你用的是哪个开发板或者核心板
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-8-5 08:30:05 | 显示全部楼层
爱吃小贱 发表于 2024-8-4 17:33
你用的是哪个开发板或者核心板

你好!是自己画的板子。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2024-8-5 09:20:37 | 显示全部楼层
eric2013 发表于 2024-6-22 09:44
调节下SDRAM的时序参数试试,你当前的配置,可能SDRAM运行干扰略大。

硬汉哥,调了一圈参数,还是没有解决,后来就搁置了。现在发现帧缓存放在SDRAM上,GUI动态缓存放在内存RAM,这个时候只要再单独访问外部SDRAM也会进HARDFAULT。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-5 11:44:43 | 显示全部楼层
hilley 发表于 2024-8-5 09:20
硬汉哥,调了一圈参数,还是没有解决,后来就搁置了。现在发现帧缓存放在SDRAM上,GUI动态缓存放在内存RA ...

这样的话,有必要验证下你的SDRAM稳定性了,大批量数据读写比较看看是否一致
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-12 03:39 , Processed in 0.047446 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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