硬汉嵌入式论坛

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

【STM32F429/F439新功能学习】LCD-TFT控制器(感觉手册上面有一处笔误)

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
发表于 2013-9-21 21:40:26 | 显示全部楼层 |阅读模式
1.  LCD-TFT控制器的主要特性
• 24-bit RGB Parallel Pixel Output; 8 bits-per-pixel (RGB888)
• 2 display layers with dedicated FIFO (64x32-bit)
• Color Look-Up Table (CLUT) up to 256 color (256x24-bit) per layer
• Supports up to SVGA (800x600) resolution
• Programmable timings for different display panels
• Programmable Background color
• Programmable polarity for HSync, VSync and Data Enable
• Up to 8 Input color formats selectable per layer
–ARGB8888
– RGB888
– RGB565
–ARGB1555
–ARGB4444
– L8 (8-bit Luminance or CLUT)
– AL44 (4-bit alpha + 4-bit luminance)
– AL88 (8-bit alpha + 8-bit luminance)
• Pseudo-random dithering output for low bits per channel
– Dither width 2-bits for Red, Green, Blue
• Flexible blending between two layers using alpha value (per pixel or constant)
• Color Keying (transparency color)
• Programmable Window position and size
• Supports thin film transistor (TFT) color displays
• AHB master interface with burst of 16 words
• Up to 4 programmable interrupt events
2. LCD控制器的引脚和信号接口
1.png
这里有一个功能要着重的说一下:
Pseudo-random dithering output for low bits per channel
– Dither width 2-bits for Red, Green, Blue
这个是什么意思呢,意思就是说:比如你要用这个24位的数据接口来接18位的显示屏来如何的连接呢,
就是用显示屏的R[5;0], G[5:0], B[5:0]接LCD控制器的R[7;2], G[7:2], B[7:2]。官方的F429探索套件用的
ili9341就是这个接法。
2.png

F429的综合评估板的接法
3.png

3.  LCD控制器的编程
看下面的这个图就一目了然了,和FSMC一样,信号的建立,保持等时间都是可编程的,下图只要标
着字母的都是可编程的。
4.png
不过手册里面有一句话很是让我很郁闷,上面说激活的高度和宽度只能达到640*480,什么意思?
难道说支持的800*480双图层是假的,感觉是笔误还是真的是这个样子,或者是我理解错了。
5.png

但是看了看相应的寄存器是这么叙述的,最大可以支持800*480,感觉是上面说的那个是笔误
6.png

4. 图层混合
   这个比较的简单,就是第一层先和背景混合,然后得到的结果和第二层混合
8.png

总结:总体上来说,使用起来应该是比较的简单的,只需配置一下时序就好,反过来说也是最麻烦的地方。
回复

使用道具 举报

1

主题

24

回帖

57

积分

初级会员

积分
57
发表于 2013-10-20 14:07:57 | 显示全部楼层
赶快这这个芯片的开发板吧。相当期待呀
回复

使用道具 举报

3

主题

7

回帖

16

积分

新手上路

积分
16
发表于 2013-11-15 13:30:48 | 显示全部楼层
请教一下,439的TFT-LCD控制器,跟ili9341是什么关系?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
 楼主| 发表于 2013-11-15 13:46:42 | 显示全部楼层

回 li3p 的帖子

li3p:请教一下,439的TFT-LCD控制器,跟ili9341是什么关系? (2013-11-15 13:30) 
没有关系的,只是ili9341支持RGB接口的通讯方式
回复

使用道具 举报

2

主题

135

回帖

2

积分

初级会员

积分
2
发表于 2013-12-3 17:03:21 | 显示全部楼层
[s:142] [s:142] [s:142]
回复

使用道具 举报

3

主题

25

回帖

3

积分

新手上路

积分
3
发表于 2013-12-3 18:37:27 | 显示全部楼层
[s:151]
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2014-9-10 19:18:57 | 显示全部楼层
[s:144] [s:144] 感觉配置时序都找不到在哪里啊。。官方程序
  /* Timing configuration */
  /* Configure horizontal synchronization width */     
  LTDC_InitStruct.LTDC_HorizontalSync = 9;
  /* Configure vertical synchronization height */
  LTDC_InitStruct.LTDC_VerticalSync = 1;
  /* Configure accumulated horizontal back porch */
  LTDC_InitStruct.LTDC_AccumulatedHBP = 29;
  /* Configure accumulated vertical back porch */
  LTDC_InitStruct.LTDC_AccumulatedVBP = 3;  
  /* Configure accumulated active width */  
  LTDC_InitStruct.LTDC_AccumulatedActiveW = 269;
  /* Configure accumulated active height */
  LTDC_InitStruct.LTDC_AccumulatedActiveH = 323;
  /* Configure total width */
  LTDC_InitStruct.LTDC_TotalWidth = 279;
  /* Configure total height */
  LTDC_InitStruct.LTDC_TotalHeigh = 327;
这里应该就是时序了吗?数据好奇怪啊,有人指点一下吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
 楼主| 发表于 2014-9-11 18:08:34 | 显示全部楼层

回 小屁孩彡 的帖子

小屁孩彡:[s:144] [s:144] 感觉配置时序都找不到在哪里啊。。官方程序
  /* Timing configuration */
  /* Configure horizontal synchronization width */    
  LTDC_InitStruct.LTDC_HorizontalSync = 9;
  /* Configure  .. (2014-09-10 19:18) 
可以看下我的这个教程:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1958
回复

使用道具 举报

0

主题

5

回帖

5

积分

新手上路

积分
5
发表于 2015-1-6 18:35:00 | 显示全部楼层
数据手册这里应该是笔误    640*480 应该写成800*600
我用429I的驱动800*600的7inch屏都没问题
还有人驱动过1024*600的分辨率 也是可以的
超点屏也可以

现在我在移植EMwin5.22到STM32F429I的板子上

  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);   //这句话不加  程序会卡死在  GUI_Init(); 这里都进不去 不知道为啥 加上这语句就是可以的
  GUI_Init();
  WM_SetCreateFlags(WM_CF_MEMDEV);

  GUI_Clear();
  GUI_SetFont(&GUI_Font20_1);
  GUI_DispStringAt("Hello world!", 0, 0);
现在加上之后运行Demo的时候  有时候会花屏  字符和图片都是可以正常显示的
请问楼主 这是怎么回事啊 ?

不加 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE); 语句
在  GUI_Init(); 加上LCD的语句 LCD是可以正常显示的  就是不能驱动GUI
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
 楼主| 发表于 2015-1-6 22:17:34 | 显示全部楼层

回 fuluoce 的帖子

fuluoce:数据手册这里应该是笔误    640*480 应该写成800*600
我用429I的驱动800*600的7inch屏都没问题
还有人驱动过1024*600的分辨率 也是可以的
超点屏也可以

....... (2015-01-06 18:35) 
这句话一定要加上 RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);   加在 GUI_Init();之前。因为ST的库做了保护,不加这个就会死机。

花屏是运行特定的demo界面时花屏?还是随机的。
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2015-1-27 11:46:32 | 显示全部楼层
楼主,我用STM32F439驱动800*480的液晶,现在X方向少一个像素,真是郁闷啊,
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2015-1-27 15:28:21 | 显示全部楼层

回 fuluoce 的帖子

fuluoce:数据手册这里应该是笔误    640*480 应该写成800*600
我用429I的驱动800*600的7inch屏都没问题
还有人驱动过1024*600的分辨率 也是可以的
超点屏也可以

....... (2015-01-06 18:35) 
你好,我用F439驱动800*480的液晶,x方向少了一个像素,请求指点啊
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
 楼主| 发表于 2015-1-27 21:52:31 | 显示全部楼层

回 shushanyao 的帖子

shushanyao:楼主,我用STM32F439驱动800*480的液晶,现在X方向少一个像素,真是郁闷啊, (2015-01-27 11:46) 
应该是LCD配置的地方你没有配置好,可以看下我以前做的一个说明:http://www.armbbs.cn/forum.php?mod=viewthread&tid=1958

这个还是2013年做,具体都不记得了额,你可以参考下。前面几页有说明
回复

使用道具 举报

91

主题

289

回帖

562

积分

金牌会员

积分
562
发表于 2015-1-29 16:22:30 | 显示全部楼层
这个LCD-TFT控制器手册在哪下载呢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107527
QQ
 楼主| 发表于 2015-1-29 21:22:27 | 显示全部楼层

回 feiante 的帖子

feiante:这个LCD-TFT控制器手册在哪下载呢
 (2015-01-29 16:22) 
下载官方的参考手册就行:http://www.armbbs.cn/forum.php?mod=viewthread&tid=3689
回复

使用道具 举报

3

主题

73

回帖

82

积分

初级会员

积分
82
发表于 2015-12-21 16:52:03 | 显示全部楼层
RGB888的屏咋弄。。。。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 21:36 , Processed in 0.453649 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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