zld9251 发表于 2017-3-16 15:05:36

使用STM32F429 LDTC驱动DE模式液晶屏

本帖最后由 zld9251 于 2017-3-16 15:05 编辑

发现公司有块AT043TN25的RGB屏,手上刚好有块STM32F429开发板,就画了一个小转接板试试看能不能驱动屏。下面是液晶屏背光IC的方案:
https://www.stmcu.org.cn/module/forum/forum.php?mod=image&aid=390951&size=300x300&key=2a494a31bca67b6a&nocache=yes&type=fixnone
刚开始只是修改了一下参数,发现怎么改都不行,屏幕显示不正常
https://www.stmcu.org.cn/module/forum/forum.php?mod=image&aid=390952&size=300x300&key=df3b621955a575d6&nocache=yes&type=fixnone

液晶屏主要参数资料如下:
https://www.stmcu.org.cn/module/forum/forum.php?mod=image&aid=390953&size=300x300&key=76e38ff04f96262c&nocache=yes&type=fixnone
后来参考了一篇文章后,才明白DE模式时候参数该如何设置,链接:http://blog.csdn.net/liuhuahan/article/details/44172719
只需设置DE,还有时钟PC,然后设置有效高度和宽度,接着设置水平和垂直后沿宽度参数,总高度=有效高度+垂直后沿,总宽度=有效宽度+水平后沿。
具体程序设置如下:
//LCD初始化函数void LTDC_Init(void){          u16lcdid=0;       lcdid=LTDC_PanelID_Read();                  //读取LCD面板ID         LTDC_Clk_Set(288,4,RCC_PLLSAIDIVR_8);//设置像素时钟 9Mhz
       lcddev.width=lcdltdc.pwidth;       lcddev.height=lcdltdc.pheight;
   lcdltdc.pixsize=2;                        //每个像素占2个字节       ltdc_framebuf=(u32*)<dc_lcd_framebuf;
   //LTDC配置   LTDC_Handler.Instance=LTDC;//   LTDC_Handler.Init.HSPolarity=LTDC_HSPOLARITY_AL;         //水平同步极性//   LTDC_Handler.Init.VSPolarity=LTDC_VSPOLARITY_AL;         //垂直同步极性   LTDC_Handler.Init.DEPolarity=LTDC_DEPOLARITY_AL;         //数据使能极性   LTDC_Handler.Init.PCPolarity=LTDC_PCPOLARITY_IIPC;      //像素时钟极性//   LTDC_Handler.Init.HorizontalSync=lcdltdc.hsw-1;          //水平同步宽度//   LTDC_Handler.Init.VerticalSync=lcdltdc.vsw-1;            //垂直同步宽度   LTDC_Handler.Init.AccumulatedHBP=45; //水平同步后沿宽度   LTDC_Handler.Init.AccumulatedVBP=16; //垂直同步后沿高度   LTDC_Handler.Init.AccumulatedActiveW=480;//有效宽度   LTDC_Handler.Init.AccumulatedActiveH=272;//有效高度   LTDC_Handler.Init.TotalWidth=525;//总宽度   LTDC_Handler.Init.TotalHeigh=288; //总高度   LTDC_Handler.Init.Backcolor.Red=0;         //屏幕背景层红色部分   LTDC_Handler.Init.Backcolor.Green=0;         //屏幕背景层绿色部分   LTDC_Handler.Init.Backcolor.Blue=0;          //屏幕背景色蓝色部分   HAL_LTDC_Init(<DC_Handler);
       //层配置       LTDC_Layer_Parameter_Config(0,(u32)ltdc_framebuf,LCD_PIXFORMAT,255,0,6,7,0X000000);//层参数配置       LTDC_Layer_Window_Config(0,0,0,lcdltdc.pwidth,lcdltdc.pheight); //层窗口配置,以LCD面板坐标系为基准,不要随便修改!
      LTDC_Display_Dir(0);                //默认竖屏       LTDC_Select_Layer(0);                     //选择第1层   LCD_LED=1;                              //点亮背光   LTDC_Clear(0XFFFFFFFF);               //清屏}最后程序显示正常了 ,然后发现屏幕被我背光电压第一次接反了,烧坏了,悲剧!https://www.stmcu.org.cn/module/forum/forum.php?mod=image&aid=390954&size=300x300&key=e8b6dc7141ce81c6&nocache=yes&type=fixnone













samhong 发表于 2017-3-17 09:53:22

签到签到,早上好!

zero99 发表于 2017-3-21 16:53:40

感谢分享,但是图片好像显示不出

zld9251 发表于 2017-6-3 17:45:23

zero99 发表于 2017-3-21 16:53
感谢分享,但是图片好像显示不出

之前是正常的不知道为啥图片会没掉

zero99 发表于 2017-6-5 08:57:50

图片需要本地上传的哦,引用网络地址可能会出现无法显示

wofei1314 发表于 2017-6-5 09:49:06

烧烧更健康,电工的成长之路
页: [1]
查看完整版本: 使用STM32F429 LDTC驱动DE模式液晶屏