[STM32F7] STM32F7 LCD ARGB8888显示抖动问题

[复制链接]
 楼主| 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呢
 楼主| kangzj 发表于 2021-10-11 22:02 | 显示全部楼层
将驱动模式切换到RGB565模式,显示便不受中断的影响了。请教在ARGB8888模式如何弄,能让LCD显示不受影响?
pengf 发表于 2021-10-11 22:04 | 显示全部楼层
你用示波器看下,屏的接口时序一直在干嘛;
zwll 发表于 2021-10-11 22:06 | 显示全部楼层
抖屏应该是重新刷了下吧,程序中断时间很短,应该不会影响的;
zhanghqi 发表于 2021-10-11 22:11 | 显示全部楼层
查下程序,这个模式的BUG
 楼主| kangzj 发表于 2021-10-11 22:13 | 显示全部楼层
我降低LCD时钟频率,情况就好很多。
 楼主| kangzj 发表于 2021-10-11 22:15 | 显示全部楼层
在降低该频率的情况下,提高CPU中断的频率(systick中断),LCD受影响的程度就加大。抖动的情况是图像水平方向整块的左右晃动。如果ARGB8888模式驱动有BUG,在没有中断的情况下也应该有问题,而不是有中断就晃动,因为中断中只是进行任务切换,而当前就建立了一个任务,而且在运行while(1)循环。
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的,看看对你有没有帮助
 楼主| kangzj 发表于 2021-10-11 22:20 | 显示全部楼层
降低LCD时钟是能够改善,但降低后,LCD显示就出现闪烁了。看这情况,估计还是F7的SDRAM访问带宽不够吧。
houcs 发表于 2021-10-11 22:22 | 显示全部楼层
应该是电源不稳定吗?
pengf 发表于 2021-10-11 22:24 | 显示全部楼层
LCD的供电要求可能太大,对外部造成干扰了。
 楼主| kangzj 发表于 2021-10-11 22:27 | 显示全部楼层
供电不会干扰的,将readwrite数据段放到CPU内部的RAM中,LCD频率设置到50MHz都可以。
 楼主| kangzj 发表于 2021-10-11 22:29 | 显示全部楼层
也就是说SDRAM除了LCD显示用之外,没别的变量需要访问他时。显示稳定。
 楼主| kangzj 发表于 2021-10-11 22:31 | 显示全部楼层
难道真的是SDRAM方访问限制了吗?
chenjunt 发表于 2021-10-11 22:33 | 显示全部楼层
感觉像始终问题,楼主用示波器测量过吗
dengdc 发表于 2021-10-11 22:34 | 显示全部楼层
但是应该是: 显示这个业务CPU占用比很高,楼主可以往这个方向查找和优化问题
 楼主| kangzj 发表于 2021-10-11 22:41 | 显示全部楼层
现在测试就只是让lcd显示一个静态的图片,cpu在加载图片数据到lcd显示缓冲区后,就一直闲着呢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

672

主题

7007

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部

672

主题

7007

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部