你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

stm32f429驱动TFT问题,后小部分显示不正常

[复制链接]
weizhiwuxian 提问时间:2015-7-11 09:51 /
/* IO¿Ú³õʼ»¯ */
  LCD_GPIOInit();
       
  LCD_DisplayOff();
       
  /* ʹÄÜLCDʱÖÓ */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_LTDC, ENABLE);
       
  /* ʹÄÜDMAʧ×Ù*/
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2D, ENABLE);
       
  /* ˮƽͬ²½ÐźÅ---µÍµçƽÓÐЧ */
  LTDC_InitStruct.LTDC_HSPolarity = LTDC_HSPolarity_AL;   

  /* ´¹Ö±Í¬²½ÐźÅ---µÍµçƽÓÐЧ */  
  LTDC_InitStruct.LTDC_VSPolarity = LTDC_VSPolarity_AL;  
       
  /* Êý¾ÝʹÄÜÐźÅ---µÍµçƽÓÐЧ */
  LTDC_InitStruct.LTDC_DEPolarity = LTDC_DEPolarity_AL;   

  /* ÏñËØʱÖÓÅäÖÃ--- */
  LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IPC;
       
        /* LCD±³¹âÉèÖà */
  LTDC_InitStruct.LTDC_BackgroundRedValue = 0;            
  LTDC_InitStruct.LTDC_BackgroundGreenValue = 0;         
  LTDC_InitStruct.LTDC_BackgroundBlueValue = 0;         
  /*
   ****************************************************************************
   *PLLSAI_VCO = HSE*PLLSAI_N / PLL_M = 8 * 192 / 8 = 192MHz
   *PLLLCDCLK = PLLSAI_VCO / PLLSAI_R = 192 / 3 = 64 Mhz
   *LTDC clock frequency = PLLLCDCLK / RCC_PLLSAIDivR = 64 / 8 = 8 Mhz
   ****************************************************************************
   */
  RCC_PLLSAIConfig(250, 2, 8);//RCC_PLLSAIConfig(192, 7, 4);
  RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div4);       
       
  /* ʹÄÜPLLSAIʱÖÓ */
  RCC_PLLSAICmd(ENABLE);
       
  /* µÈ´ýPLLSAIʱÖÓ */
  while(RCC_GetFlagStatus(RCC_FLAG_PLLSAIRDY) == RESET){}
       
//-- Timing configuration --//
//-- Configure horizontal synchronization width --//                 
  /*  */
  LTDC_InitStruct.LTDC_HorizontalSync = HSYNC;
  /*  */
  LTDC_InitStruct.LTDC_VerticalSync = VSYNC;
  /*  */
  LTDC_InitStruct.LTDC_AccumulatedHBP = HBP;
  /*  */
  LTDC_InitStruct.LTDC_AccumulatedVBP = VBP;  
  /*  */
  LTDC_InitStruct.LTDC_AccumulatedActiveW = LCDX + HBP;
  /*  */
  LTDC_InitStruct.LTDC_AccumulatedActiveH = LCDY + VBP;
  /*  */
  LTDC_InitStruct.LTDC_TotalWidth = LCDX + HBP + HFP;
  /*  */
  LTDC_InitStruct.LTDC_TotalHeigh = LCDY + VBP + VFP;

  LTDC_Init(&LTDC_InitStruct);
               
  LTDC_Layer_InitStruct.LTDC_HorizontalStart = HBP+1;
  LTDC_Layer_InitStruct.LTDC_HorizontalStop = (LCDX + HBP);
  LTDC_Layer_InitStruct.LTDC_VerticalStart = VBP+1;
  LTDC_Layer_InitStruct.LTDC_VerticalStop = (LCDY + VBP);       

  /* Pixel Format configuration*/            
  LTDC_Layer_InitStruct.LTDC_PixelFormat = LTDC_Pixelformat_RGB888;
  /* Alpha constant (255 totally opaque) */
  LTDC_Layer_InitStruct.LTDC_ConstantAlpha = 255;
  /* Default Color configuration (configure A,R,G,B component values) */         
  LTDC_Layer_InitStruct.LTDC_DefaultColorBlue = 0x0000ff;        
  LTDC_Layer_InitStruct.LTDC_DefaultColorGreen = 0;      
  LTDC_Layer_InitStruct.LTDC_DefaultColorRed = 0;         
  LTDC_Layer_InitStruct.LTDC_DefaultColorAlpha = 0;
  /* Configure blending factors */      
  LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_CA;   
  LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_CA;
  /* the length of one line of pixels in bytes + 3 then :
     Line Lenth = Active high width x number of bytes per pixel + 3
     Active high width         = LCD_PIXEL_WIDTH
     number of bytes per pixel = 2    (pixel_format : RGB565)
  */
  LTDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCDX * 2) + 3);
  /*  the pitch is the increment from the start of one line of pixels to the
      start of the next line in bytes, then :
      Pitch = Active high width x number of bytes per pixel     
  */
  LTDC_Layer_InitStruct.LTDC_CFBPitch = (LCDX * 2);
  /* configure the number of lines */  
  LTDC_Layer_InitStruct.LTDC_CFBLineNumber = LCDY;

  /* Input Address configuration */   
  LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER;

  LTDC_LayerInit(LTDC_Layer1, &LTDC_Layer_InitStruct);

  /* Configure Layer2 */
  LTDC_Layer_InitStruct.LTDC_CFBStartAdress = LCD_FRAME_BUFFER + BUFFER_OFFSET;
  LTDC_Layer_InitStruct.LTDC_BlendingFactor_1 = LTDC_BlendingFactor1_PAxCA;   
  LTDC_Layer_InitStruct.LTDC_BlendingFactor_2 = LTDC_BlendingFactor2_PAxCA;
  LTDC_LayerInit(LTDC_Layer2, &LTDC_Layer_InitStruct);
       
  LTDC_ReloadConfig(LTDC_IMReload);

  /* Enable foreground & background Layers */
  LTDC_LayerCmd(LTDC_Layer1, ENABLE);
//  LTDC_LayerCmd(LTDC_Layer2, ENABLE);
  LTDC_ReloadConfig(LTDC_IMReload);
       
  LCD_DisplayOn();


试过驱动800 X480的TFT,写数据只显示到320行,驱动800 X 600 的TFT数据像是到400行,请问是什么问题???????????????,用SDROM做内存显示

ddd.jpg
收藏 1 评论13 发布时间:2015-7-11 09:51

举报

13个回答
creep 回答时间:2015-7-11 11:23:09
weizhiwuxian 发表于 2015-7-11 11:06
问题解决,配置错误,R888模式,对应需要修改TDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCDX * 2) + 3); ...

RGB888模式要修改为下面的吧,
  1. TDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCDX * 3) + 3);
复制代码
lcd.jpg
feiting94 回答时间:2015-7-11 10:04:09
楼主可以试一试只开一层,
creep 回答时间:2015-7-11 11:05:24
不是很懂,但是感觉下面的几个参数设置是不是有问题,
  1. LTDC_Layer_InitStruct.LTDC_HorizontalStart = HBP+1;
  2.   LTDC_Layer_InitStruct.LTDC_HorizontalStop = (LCDX + HBP);
  3.   LTDC_Layer_InitStruct.LTDC_VerticalStart = VBP+1;
  4.   LTDC_Layer_InitStruct.LTDC_VerticalStop = (LCDY + VBP);     
复制代码

从手册上看的2个图看
lcd.jpg
lcd.jpg
应该为下面的公式吧,
  1.    Horizontal start = horizontal synchronization + Horizontal back porch
  2.      Vertical start   = vertical synchronization + vertical back porch   
  3.      Horizontal stop = Horizontal start + window width -1
  4.      Vertical stop   = Vertical start + window height -1  
复制代码





weizhiwuxian 回答时间:2015-7-11 11:06:03
问题解决,配置错误,R888模式,对应需要修改TDC_Layer_InitStruct.LTDC_CFBLineLength = ((LCDX * 2) + 3);
weizhiwuxian 回答时间:2015-7-11 11:27:54
是的,正解!!!!!!!!!!
moyanming2013 回答时间:2015-7-11 14:53:23
注释乱码
112207301219 回答时间:2015-7-11 15:47:53
还能这样玩
星辰一方 回答时间:2015-7-11 15:55:36
不懂,帮顶……
mark0668 回答时间:2015-7-11 16:45:00
学习了..
戏如人生 回答时间:2015-7-11 17:56:31
学习了!
lkl0305 回答时间:2015-7-11 21:05:16
同样学习
wyxy163@126.com 回答时间:2015-7-12 08:58:55
提示: 作者被禁止或删除 内容自动屏蔽
埃斯提爱慕 回答时间:2015-7-12 21:41:45
提示: 作者被禁止或删除 内容自动屏蔽

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版