硬汉嵌入式论坛

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

请教下,rgb 屏的 横竖屏显示问题 ??

[复制链接]

610

主题

3050

回帖

4900

积分

至尊会员

积分
4900
发表于 2017-4-13 10:21:27 | 显示全部楼层 |阅读模式
请教下,rgb 屏的 横竖屏显示问题 ??

目前初始化

#define  LCD_PIXEL_WIDTH    ((uint16_t)800)//水平宽度
#define  LCD_PIXEL_HEIGHT   ((uint16_t)1280)//垂直宽度



static void BSP_LTDC_LayerInit(void)         // 这个函数只初始化一次
{
  LTDC_LayerCfgTypeDef pLayerCfg;

  // 配置本层的窗口边界,注意这些参数是包含HBP HSW VBP VSW的     
  pLayerCfg.WindowX0 = 0;
  pLayerCfg.WindowX1 = LCD_PIXEL_WIDTH;                      // 在横竖屏显示时,此值固定不变   
  pLayerCfg.WindowY0 = 0;
  pLayerCfg.WindowY1 = LCD_PIXEL_HEIGHT;                     // 在横竖屏显示时,此值固定不变   

  pLayerCfg.PixelFormat = LTDC_USER_PIXFORMAT;
  pLayerCfg.Alpha = 255;
  pLayerCfg.Alpha0 = 0;
  pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_PAxCA;  
  pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_PAxCA;  
  pLayerCfg.FBStartAdress = LCD_FRAME_BUFFER_LAYER0;
  pLayerCfg.ImageWidth = LCD_PIXEL_WIDTH;                                        // 在横竖屏显示时,此值固定不变                     
  pLayerCfg.ImageHeight = LCD_PIXEL_HEIGHT;                                      // 在横竖屏显示时,此值固定不变  
  pLayerCfg.Backcolor.Blue = 0;
  pLayerCfg.Backcolor.Green = 0;
  pLayerCfg.Backcolor.Red = 0;
  HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg,  0) ;
}



/*
函数功能:计数显示字符的输出地址
函数名称:BSP_LCD_PutPixelAddr
返回值:  返回计算后的字符输出地址数据
*/
uint32_t  BSP_LCD_PutPixelAddr(uint16_t Xpos, uint16_t Ypos)
{
        uint32_t index = 0;  

    if (g_LcdDirection == 0)                      // 竖屏
    {
      index = (LTDC_PIX_SIZE * (uint32_t)(Ypos * LCD_PIXEL_WIDTH + Xpos));  
    }
    else if (g_LcdDirection == 1)          // 横屏
    {
      index = (LTDC_PIX_SIZE * (uint32_t)(Xpos * LCD_PIXEL_WIDTH  + (LCD_PIXEL_WIDTH - Ypos - 1)));   
    }
    else if (g_LcdDirection == 2)          // 竖屏180°
    {
      index = (LTDC_PIX_SIZE * (uint32_t)((LCD_PIXEL_HEIGHT - Ypos - 1) * LCD_PIXEL_WIDTH + (LCD_PIXEL_WIDTH - Xpos - 1)));   
    }
    else if (g_LcdDirection == 3)          // 横屏180°
    {
      index = (LTDC_PIX_SIZE * (uint32_t)((LCD_PIXEL_HEIGHT - Xpos - 1) * LCD_PIXEL_WIDTH  + Ypos));     
    }         

  return index;
}


目前能够实现四个方向的正常显示
如果按照上面的设置,程序长期运行不知道会不会有什么问题啊 ??????
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106746
QQ
发表于 2017-4-13 10:24:49 | 显示全部楼层
没事的,放心用。
回复

使用道具 举报

610

主题

3050

回帖

4900

积分

至尊会员

积分
4900
 楼主| 发表于 2017-4-13 11:20:20 | 显示全部楼层

回 eric2013 的帖子

eric2013:没事的,放心用。 (2017-04-13 10:24) 
那就好啊,多谢多谢啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 20:57 , Processed in 0.166837 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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