查看: 1633|回复: 0

【STM32746G-Discovery】LTDC单层图像显示

[复制链接]
  • TA的每日心情
    奋斗
    2023-7-6 08:48
  • 签到天数: 169 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-7-18 09:00:06 | 显示全部楼层 |阅读模式
    分享到:
    TFT的接口如下图:

    LCD-TFT(液晶显示器——薄膜晶体管)显示器控制器提供并行数字 RGB (红色、绿色、蓝色)以及水平同步、垂直同步、像素时钟和数据使能信号,这些信号直接输出到不同 LCD和 TFT面板的接口。
    主要功能:
    24 位 RGB并行像素输出;每像素 8 位 (RGB888)。
    2个带有专用 FIFO的显示层(FIFO 深度 64x32位)。
    查色表 (CLUT) ,每层高达 256 种颜色(256x24位)。
    支持高达 XGA (1024x768) 的分辨率。
    可针对不同显示面板编程时序。
    可编程背景色。
    可编程 HSync、VSync 和数据使能信号的极性。
    每层有多达 8 个输入颜色格式可供选择。
    1、ARGB8888
    2、RGB888
    3、RGB565
    4、ARGB1555
    5、ARGB4444
    6、L8(8位 Luminance或 CLUT )
    7、AL44(4位 alpha + 4位 luminance )
    8、AL88(8位 alpha + 8位 luminance )
    每通道的低位采用伪随机抖动输出。红色、绿色、蓝色的抖动宽度为 2 位。
    使用 alpha 值(每像素或常数)在两层之间灵活混合。
    色键(透明颜色) 。
    可编程窗口位置和大小 。
    支持薄膜晶体管 (TFT) 彩色显示器 。
    AHB 主接口支持 16个字的突发。
    高达 4 个可编程中断事件。
    时钟:
    AHB 时钟域 (HCLK) :用于将数据从存储器传输到 FIFO层APB2时钟域 (PCLK2):用于配置寄存器像素时钟域 (LCD_CLK) :用于生成 LCD-TFT接口信号。LCD_CLK输出应按照面板要求配置。LCD_CLK通过 PLLSAI进行配置(见 RCC部分)。
    时钟配置程序:
       PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC;   PeriphClkInitStruct.PLLSAI.PLLSAIN = 192;   PeriphClkInitStruct.PLLSAI.PLLSAIR = 5;   PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4;   HAL_RCCEx_PeriphCLKConfig(&amperiphClkInitStruct);  引脚
    LCD-TFT最多可以使用28个引脚。

    液晶时序配置
      hltdc_F.Init.HorizontalSync = (RK043FN48H_HSYNC - 1);  hltdc_F.Init.VerticalSync = (RK043FN48H_VSYNC - 1);  hltdc_F.Init.AccumulatedHBP = (RK043FN48H_HSYNC + RK043FN48H_HBP - 1);  hltdc_F.Init.AccumulatedVBP = (RK043FN48H_VSYNC + RK043FN48H_VBP - 1);  hltdc_F.Init.AccumulatedActiveH = (RK043FN48H_HEIGHT + RK043FN48H_VSYNC + RK043FN48H_VBP - 1);  hltdc_F.Init.AccumulatedActiveW = (RK043FN48H_WIDTH + RK043FN48H_HSYNC + RK043FN48H_HBP - 1);  hltdc_F.Init.TotalHeigh = (RK043FN48H_HEIGHT + RK043FN48H_VSYNC + RK043FN48H_VBP + RK043FN48H_VFP - 1);  hltdc_F.Init.TotalWidth = (RK043FN48H_WIDTH + RK043FN48H_HSYNC + RK043FN48H_HBP + RK043FN48H_HFP - 1);背景色配置:
      hltdc_F.Init.Backcolor.Blue = 0;  hltdc_F.Init.Backcolor.Green = 0;  hltdc_F.Init.Backcolor.Red = 0;这里使用的hltdc_F 变量是一个LTDC_HandleTypeDef类型的结构体。

    窗口配置,这里只显示了一个图层。
    配置开始、结束的像素位置坐标,也就是整个屏幕。
    pLayerCfg.WindowX0 = 0;  pLayerCfg.WindowX1 = 480;  pLayerCfg.WindowY0 = 0;  pLayerCfg.WindowY1 = 272;像素格式配置成为RGB565。
    pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;显示图像的起始地址:
    pLayerCfg.FBStartAdress = (uint32_t)&RGB565_480x272;Alpha配置为255.
    pLayerCfg.Alpha = 255;最后通过HAL_LTDC_ConfigLayer函数初始化TFT与配置图层。
    HAL_LTDC_ConfigLayer(&hltdc_F, &pLayerCfg, 1);
    显示结果。
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    手机版|小黑屋|与非网

    GMT+8, 2024-4-24 00:45 , Processed in 0.120780 second(s), 17 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.