硬汉嵌入式论坛

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

stm32Fxx的单片机,使用 LTDC 功能时,第二层不能够显示?

[复制链接]

680

主题

3479

回帖

5544

积分

论坛元老

积分
5544
发表于 2017-3-3 21:28:00 | 显示全部楼层 |阅读模式
stm32Fxx的单片机,使用 LTDC 功能时,第二层不能够显示?

具体如下:

第一次设置


  BSP_LCD_SelectLayer(0);  
  BSP_LCD_LayerDefaultInit(0, LCD_FRAME_BUFFER_LAYER0);

  BSP_LCD_SetLayerVisible(0, ENABLE);
  BSP_LCD_DisplayOn();
  BSP_LCD_Clear(LCD_COLOR_BLACK);

  __LCD_Drv->LCD_Clear(LCD_COLOR_GREEN);
  HAL_Delay(2000);

  __LCD_Drv->LCD_Clear(LCD_COLOR_MAGENTA);
  HAL_Delay(2000);

  __LCD_Drv->LCD_Clear(LCD_COLOR_WHITE);

  HAL_Delay(2000);

  __LCD_Drv->LCD_SetBackColor(LCD_COLOR_GREEN);

  __LCD_Drv->LCD_SetTextColor(LCD_COLOR_BLACK);

  __LCD_Drv->LCD_DisplayStringAt(0, 610, (uint8_t *)"LTDC Display Begin ... ...", CENTER_MODE);

  __LCD_Drv->LCD_SetFont(&Font16);
  __LCD_Drv->LCD_DisplayStringAt(0, 670, (uint8_t *)"Touchscreen cannot be initialized", CENTER_MODE);   


  __LCD_Drv->LCD_SetFont(&Font24);
  __LCD_Drv->LCD_DisplayStringAt(0, 730, (uint8_t *)"RGB TO LVDS Pixel 800 * 1280", CENTER_MODE);  


上面的第一次显示是正常的,

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
第二次设置如下:

  BSP_LCD_SelectLayer(1);  
  BSP_LCD_LayerDefaultInit(1, LCD_FRAME_BUFFER_LAYER1);
  BSP_LCD_SetColorKeying(1, LCD_COLOR_WHITE);
  BSP_LCD_SetLayerVisible(1, ENABLE);
  BSP_LCD_DisplayOn();

  __LCD_Drv->LCD_Clear(LCD_COLOR_BLACK);       // 清贫也没有反应
  __LCD_Drv->LCD_SetBackColor(LCD_COLOR_GREEN);

  __LCD_Drv->LCD_SetTextColor(LCD_COLOR_BLUE);

  __LCD_Drv->LCD_SetFont(&Font24);
  __LCD_Drv->LCD_DisplayStringAt(0, 780, (uint8_t *)"RGB TO LVDS Layer2 Pixel 800 * 1280", CENTER_MODE);    // 显示也没有任何 动静 ???


/**
  * @brief  Initializes the LCD layers.
  * @param  LayerIndex: Layer foreground or background
  * @param  FB_Address: Layer frame buffer
  * @retval None
  */
void BSP_LCD_LayerDefaultInit(uint16_t LayerIndex, uint32_t FB_Address)
{     
  LCD_LayerCfgTypeDef   Layercfg;

  /* Layer Init */
  Layercfg.WindowX0 = 0;
  Layercfg.WindowX1 = BSP_LCD_GetXSize();
  Layercfg.WindowY0 = 0;
  Layercfg.WindowY1 = BSP_LCD_GetYSize();
  Layercfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
  Layercfg.FBStartAdress = FB_Address;
  Layercfg.Alpha = 255;
  Layercfg.Alpha0 = 0;
  Layercfg.Backcolor.Blue = 0;
  Layercfg.Backcolor.Green = 0;
  Layercfg.Backcolor.Red = 0;
  Layercfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA; //LTDC_BLENDING_FACTOR1_PAxCA;  //LTDC_BLENDING_FACTOR1_PAxCA;
  Layercfg.BlendingFactor2 = LTDC_BLENDING_FACTOR1_PAxCA;  //LTDC_BLENDING_FACTOR2_PAxCA;
  Layercfg.ImageWidth = BSP_LCD_GetXSize();
  Layercfg.ImageHeight = BSP_LCD_GetYSize();

  HAL_LTDC_ConfigLayer(&hltdc_eval, &Layercfg, LayerIndex);

  DrawProp[LayerIndex].BackColor = LCD_COLOR_WHITE;
  DrawProp[LayerIndex].pFont     = &Font24;
  DrawProp[LayerIndex].TextColor = LCD_COLOR_BLACK;


}
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2017-3-4 09:52:18 | 显示全部楼层
没用过HAL,不过配置选项跟标准库大同小异,看了看没啥问题。显存地址错开了吧,保证够存一个图层。
回复

使用道具 举报

680

主题

3479

回帖

5544

积分

论坛元老

积分
5544
 楼主| 发表于 2017-3-5 08:55:02 | 显示全部楼层

回 eric2013 的帖子

eric2013:没用过HAL,不过配置选项跟标准库大同小异,看了看没啥问题。显存地址错开了吧,保证够存一个图层。 (2017-03-04 09:52) 
显存地址是hi错开的,能够保证能够保存一个图层的空间

现在单独显示图层1 或者图层2都是没有问题,就是不能够混合显示
回复

使用道具 举报

1

主题

4

回帖

19

积分

新手上路

积分
19
发表于 2018-1-19 11:52:26 | 显示全部楼层
hal库的代码能分享下吗楼主,我最近有cubemx做ltdc没成功
回复

使用道具 举报

20

主题

121

回帖

181

积分

初级会员

积分
181
发表于 2018-1-19 16:46:17 | 显示全部楼层
[C]_Gs5i5 发表于 2018-1-19 11:52
hal库的代码能分享下吗楼主,我最近有cubemx做ltdc没成功

正点原子的有HAL库,自己去看看http://www.openedv.com/
回复

使用道具 举报

680

主题

3479

回帖

5544

积分

论坛元老

积分
5544
 楼主| 发表于 2018-1-19 16:49:28 | 显示全部楼层
[C]_Gs5i5 发表于 2018-1-19 11:52
hal库的代码能分享下吗楼主,我最近有cubemx做ltdc没成功

st官网可以下载啊
回复

使用道具 举报

680

主题

3479

回帖

5544

积分

论坛元老

积分
5544
 楼主| 发表于 2018-1-19 16:49:43 | 显示全部楼层
magicoctoier 发表于 2018-1-19 16:46
正点原子的有HAL库,自己去看看http://www.openedv.com/

好的,多谢多谢
回复

使用道具 举报

8

主题

46

回帖

70

积分

初级会员

积分
70
发表于 2019-12-13 16:11:25 | 显示全部楼层
hpdell 发表于 2018-1-19 16:49
好的,多谢多谢

你好,请问这个问题解决了吗?
我也遇到单个Layer无法显示的问题,硬体设置都没问题,暂存器也有数值,但就是无法显示在屏幕上。
Layer跟背景色都可以看的到,但Layer本身却无法画线等等功能

感谢您!
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2019-12-13 20:33:31 | 显示全部楼层
Hans 发表于 2019-12-13 16:11
你好,请问这个问题解决了吗?
我也遇到单个Layer无法显示的问题,硬体设置都没问题,暂存器也有数值, ...

这种的话,还是配置有些问题。
回复

使用道具 举报

8

主题

46

回帖

70

积分

初级会员

积分
70
发表于 2019-12-16 10:25:42 | 显示全部楼层
eric2013 发表于 2019-12-13 20:33
这种的话,还是配置有些问题。

请问是硬件配置的问题吗?
还是有其他关于屏幕设置的部分呢?

谢谢您
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2019-12-17 10:08:05 | 显示全部楼层
Hans 发表于 2019-12-16 10:25
请问是硬件配置的问题吗?
还是有其他关于屏幕设置的部分呢?

直接复制粘贴我们的代码测试下看看。
回复

使用道具 举报

8

主题

46

回帖

70

积分

初级会员

积分
70
发表于 2019-12-17 15:45:43 | 显示全部楼层
eric2013 发表于 2019-12-17 10:08
直接复制粘贴我们的代码测试下看看。

我参考V-24的示例,修改为我现有的脚位后,状况依旧
我仅有将LTDC,SDRAM设置留下其他隐藏
不过之前点亮其他可成功
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115667
QQ
发表于 2019-12-18 00:21:25 | 显示全部楼层
Hans 发表于 2019-12-17 15:45
我参考V-24的示例,修改为我现有的脚位后,状况依旧
我仅有将LTDC,SDRAM设置留下其他隐藏
不过之前点 ...

看我V6的emWin教程移植章节,按照步骤操作,看看卡在那个步骤上,方便我看看哪里的问题。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-11 01:01 , Processed in 0.323052 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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