你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

论STM32F429 LTDC驱动RGB 显示右移的问题

[复制链接]
胤幻1988 发布时间:2023-1-31 16:06
STM32F429及F7,H7内部集成了LTDC寄存器,直接驱动RGB LCD。但在使用中发现屏幕整体右移的现象。
# F. v7 l% H+ ]/ e查找了一番,发现是LTDC的一些相关参数没有配置好的问题。. L% H3 o- [# y/ f6 R3 S
在LTDC初始化中,如下:
6 Q+ t4 u' g/ z, B* y
  1.     //DIY的        320X240 RGB屏幕        ' X% P6 e, N/ K2 R2 k
  2.                 lcdltdc.pwidth=320;                            //面板宽度,单位:像素
    , a" w, {3 c% a# B  Y0 F
  3.                 lcdltdc.pheight=240;                    //面板高度,单位:像素
    , A) W' @6 _) p# R" H; J
  4. //                lcdltdc.hsw=32;                                    //水平同步宽度
    ( r! H/ B! g$ b# S. \
  5. //                lcdltdc.vsw=1;                                    //垂直同步宽度
    2 D, X- O( b: @" j- t& u% _
  6. //                lcdltdc.hbp=68;                                    //水平后廊
    # M+ j5 I2 {& r2 n" F, X
  7. //                lcdltdc.vbp=18;                                    //垂直后廊) T( Y$ Q* G! R
  8. //                lcdltdc.hfp=20;                                    //水平前廊
      ?% p' w' h% L  h
  9. //                lcdltdc.vfp=3;                                    //垂直前廊9 Z8 o  ], w( Q) B% L; K
  10.                
    2 X/ p! r0 F5 O$ h. n, d
  11.                 lcdltdc.hsw=2;                                    //水平同步宽度" g* m. {6 i2 t# m: u
  12.                 lcdltdc.vsw=1;                                    //垂直同步宽度1 J* t3 ?9 I" N' W
  13.                 lcdltdc.hbp=68;                                    //水平后廊& p! i' h1 x2 \" A+ o" f
  14.                 lcdltdc.vbp=17;                                    //垂直后廊- ]. e4 H6 V7 |$ E7 W
  15.                 lcdltdc.hfp=20;                                    //水平前廊
    / Y; r8 z' |2 X5 P4 Y6 C
  16.                 lcdltdc.vfp=0;                                    //垂直前廊
    ! m. {  M( f4 Y( a# b
  17.                
    9 `. D: o- J0 e2 c$ J! P
  18.                 LTDC_Clk_Set(288,4,RCC_PLLSAIDIVR_8);   //设置像素时钟 9Mhz
复制代码
2 O( m/ `: O( K$ V: ]
2 \2 P* m7 g  K  t
注释掉的是之前的配置,后经反复修正查看,更新为新的配置。2 O. f" Z* J2 U1 X1 o8 O7 o- d
具体原理,来着网上一个网友的思路:& @  J! z& M, U6 G" `7 t, Q& M' F
正常的TFT一行的显示周期是 前消隐+实际点输出+后消隐
, o+ g" Q, ^) N! wHBP、HFP 代表前后消隐所需要的周期
" [6 m; T- L9 L如果前消隐设置小了,后消隐设置大了,LCD控制器的实际输出就会被当做消隐而不会实际显示出来,看到的效果就是图像左移,反之图像右移 8 R2 g4 L+ G0 A& d' P6 S: ?; ^8 H
如果前后消隐都设置小了,理论上第二行的图像可能会被当做第一行的图像显示,照成屏幕歪斜不同步,但是有些TFT中内部的时序电路会自动补上缺少的时钟,所以也不一定会看到不同步的画面% P% V, I" V# e2 ]# V
场的消隐同理. j6 B$ i. ~# O5 N2 F( M) |
至于为什么要消隐是为了兼容CRT显示器的显示原理,CRT显示器每一个扫描行完成后,电子枪需要回扫,这段时间不能显示,所以这段时间的视频信号需要暂停一下,就是消隐.
其中发现有时候即便调整的没有白边,但是图像闪烁明细,后增加前后整体时间,闪烁消失。遂好!
( Y  W, b& B: {0 {2 P  S* y非常感谢这位兄弟!
2 o! Z- t. i4 w+ N
  n$ t$ h: }, B1 V5 |- a4 u6 n
收藏 评论1 发布时间:2023-1-31 16:06

举报

1个回答
STMCU-管管 回答时间:2023-8-10 10:46:33
给力
4 L) g9 v; q8 {# O

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版