里飞网

 找回密码
 立即注册
查看: 4414|回复: 0
打印 上一主题 下一主题

LTDC—驱动RGB TFT屏显示

[复制链接]

45

主题

291

帖子

2496

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2496
跳转到指定楼层
楼主
发表于 2019-12-20 15:07:49 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
LTDC—驱动RGB TFT屏显示一些注意事项,后面直接看代码
1、STM32F750Z8在使用了SDRAM后,最多只能驱动RGB666。
2、LCD有闪烁,可适当提高LTDC时钟频率,如果LTDC时钟过高,则LCD可能花屏。
3、LTDC比较好配置,直接从手删除拿来参数填上即可。
4、LTDC显示需要用到SDRAM,SDRAM需在LTDC前初始化好。


LTDC初始化
  1. void MX_LTDC_Init(void)
  2. {
  3.   LTDC_LayerCfgTypeDef pLayerCfg = {0};

  4.   hltdc.Instance = LTDC;
  5.   hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
  6.   hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
  7.   hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
  8.   hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
  9.   hltdc.Init.HorizontalSync = 19;
  10.   hltdc.Init.VerticalSync = 9;
  11.   hltdc.Init.AccumulatedHBP = 65;
  12.   hltdc.Init.AccumulatedVBP = 32;
  13.   hltdc.Init.AccumulatedActiveW = 865;
  14.   hltdc.Init.AccumulatedActiveH = 512;
  15.   hltdc.Init.TotalWidth = 881;
  16.   hltdc.Init.TotalHeigh = 519;
  17.   hltdc.Init.Backcolor.Blue = 0;
  18.   hltdc.Init.Backcolor.Green = 0;
  19.   hltdc.Init.Backcolor.Red = 0;
  20.   if (HAL_LTDC_Init(&hltdc) != HAL_OK)
  21.   {
  22.     Error_Handler();
  23.   }
  24.   pLayerCfg.WindowX0 = 0;
  25.   pLayerCfg.WindowX1 = 800;
  26.   pLayerCfg.WindowY0 = 0;
  27.   pLayerCfg.WindowY1 = 480;
  28.   pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
  29.   pLayerCfg.Alpha = 255;
  30.   pLayerCfg.Alpha0 = 0;
  31.   pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
  32.   pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
  33.   pLayerCfg.FBStartAdress = 0xC0000000;
  34.   pLayerCfg.ImageWidth = 800;
  35.   pLayerCfg.ImageHeight = 480;
  36.   pLayerCfg.Backcolor.Blue = 0;
  37.   pLayerCfg.Backcolor.Green = 0;
  38.   pLayerCfg.Backcolor.Red = 0;
  39.   if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
  40.   {
  41.     Error_Handler();
  42.   }

  43. }
复制代码


LTDC刷屏测试
  1. uint32_t tft_vram[480][800] __attribute__((at(0xC0000000)));

  2. void LTDC_Clear(uint32_t color)
  3. {
  4.     for ( int y = 0 ; y < 480 ; y++ )
  5.     {
  6.         for ( int x = 0 ; x < 800 ; x++ )
  7.         {
  8.             tft_vram[y][x] = color;
  9.         }
  10.     }
  11. }
  12. void LTDC_Test(void)
  13. {
  14.         uint32_t color;
  15.     while ( 1 )
  16.     {
  17.         HAL_Delay(2000);
  18.                 color = rand();
  19.                 //printf("color:%x\r\n",color);
  20.                 LTDC_Clear(color);
  21.     }
  22. }
复制代码


CUBEMX配置



工程代码: F750_LTDC.rar (813.71 KB, 下载次数: 1208)
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|里飞网  

GMT+8, 2024-4-26 17:46 , Processed in 0.097932 second(s), 5 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc. Template By 【未来科技】【 www.wekei.cn 】

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