打印
[STM32F7]

STM32F7 LCD ARGB8888显示抖动问题

[复制链接]
1328|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kangzj|  楼主 | 2021-10-11 21:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用STM32F767BI驱动800*600的LCD,采用ARGB8888模式驱动,但CPU的任何中断都会引起LCD显示左右抖动,就像是中断影响到了LCD的扫描。

使用特权

评论回复
沙发
dingy| | 2021-10-11 21:56 | 只看该作者
关掉中断呢

使用特权

评论回复
板凳
kangzj|  楼主 | 2021-10-11 21:58 | 只看该作者
关掉中断,显示就不受影响了

使用特权

评论回复
地板
juventus9554| | 2021-10-11 22:00 | 只看该作者
切换到RGB565呢

使用特权

评论回复
5
kangzj|  楼主 | 2021-10-11 22:02 | 只看该作者
将驱动模式切换到RGB565模式,显示便不受中断的影响了。请教在ARGB8888模式如何弄,能让LCD显示不受影响?

使用特权

评论回复
6
pengf| | 2021-10-11 22:04 | 只看该作者
你用示波器看下,屏的接口时序一直在干嘛;

使用特权

评论回复
7
zwll| | 2021-10-11 22:06 | 只看该作者
抖屏应该是重新刷了下吧,程序中断时间很短,应该不会影响的;

使用特权

评论回复
8
zhanghqi| | 2021-10-11 22:11 | 只看该作者
查下程序,这个模式的BUG

使用特权

评论回复
9
kangzj|  楼主 | 2021-10-11 22:13 | 只看该作者
我降低LCD时钟频率,情况就好很多。

使用特权

评论回复
10
kangzj|  楼主 | 2021-10-11 22:15 | 只看该作者
在降低该频率的情况下,提高CPU中断的频率(systick中断),LCD受影响的程度就加大。抖动的情况是图像水平方向整块的左右晃动。如果ARGB8888模式驱动有BUG,在没有中断的情况下也应该有问题,而不是有中断就晃动,因为中断中只是进行任务切换,而当前就建立了一个任务,而且在运行while(1)循环。

使用特权

评论回复
11
supernan| | 2021-10-11 22:18 | 只看该作者

应该就是LCD时钟问题,我之前做的STM32F746的也抖过,我改成下面就好了

/* LCD clock configuration */
    /* PLLSAI_VCO Input = HSE_VALUE/PLL_M = 1 Mhz */
    /* PLLSAI_VCO Output = PLLSAI_VCO Input * PLLSAIN = 120 Mhz */
    /* PLLLCDCLK = PLLSAI_VCO Output/PLLSAIR = 120/2 = 60 Mhz */
    /* LTDC clock frequency = PLLLCDCLK / LTDC_PLLSAI_DIVR_2 = 60/2 = 30 Mhz */

    PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;
    PeriphClkInitStruct.PLLSAI.PLLSAIN = 80;//120;
    PeriphClkInitStruct.PLLSAI.PLLSAIR = 2;
    PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_2;
    HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);

    /* Initialize the LCD pixel width and pixel height */
    hltdc.LayerCfg->ImageWidth  = AT800480_WIDTH;
    hltdc.LayerCfg->ImageHeight = AT800480_HEIGHT;

我这是使用了STemwin 屏幕800*480的,看看对你有没有帮助

使用特权

评论回复
12
kangzj|  楼主 | 2021-10-11 22:20 | 只看该作者
降低LCD时钟是能够改善,但降低后,LCD显示就出现闪烁了。看这情况,估计还是F7的SDRAM访问带宽不够吧。

使用特权

评论回复
13
houcs| | 2021-10-11 22:22 | 只看该作者
应该是电源不稳定吗?

使用特权

评论回复
14
pengf| | 2021-10-11 22:24 | 只看该作者
LCD的供电要求可能太大,对外部造成干扰了。

使用特权

评论回复
15
kangzj|  楼主 | 2021-10-11 22:27 | 只看该作者
供电不会干扰的,将readwrite数据段放到CPU内部的RAM中,LCD频率设置到50MHz都可以。

使用特权

评论回复
16
kangzj|  楼主 | 2021-10-11 22:29 | 只看该作者
也就是说SDRAM除了LCD显示用之外,没别的变量需要访问他时。显示稳定。

使用特权

评论回复
17
kangzj|  楼主 | 2021-10-11 22:31 | 只看该作者
难道真的是SDRAM方访问限制了吗?

使用特权

评论回复
18
chenjunt| | 2021-10-11 22:33 | 只看该作者
感觉像始终问题,楼主用示波器测量过吗

使用特权

评论回复
19
dengdc| | 2021-10-11 22:34 | 只看该作者
但是应该是: 显示这个业务CPU占用比很高,楼主可以往这个方向查找和优化问题

使用特权

评论回复
20
kangzj|  楼主 | 2021-10-11 22:41 | 只看该作者
现在测试就只是让lcd显示一个静态的图片,cpu在加载图片数据到lcd显示缓冲区后,就一直闲着呢。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

672

主题

7007

帖子

2

粉丝