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

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

[复制链接]
zld9251 提问时间:2017-3-16 15:05 /
本帖最后由 zld9251 于 2017-3-16 15:05 编辑

发现公司有块AT043TN25的RGB屏,手上刚好有块STM32F429开发板,就画了一个小转接板试试看能不能驱动屏。下面是液晶屏背光IC的方案:

刚开始只是修改了一下参数,发现怎么改都不行,屏幕显示不正常


液晶屏主要参数资料如下:

后来参考了一篇文章后,才明白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[0]=(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[0],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);               //清屏
}
最后程序显示正常了 ,然后发现屏幕被我背光电压第一次接反了,烧坏了,悲剧!













收藏 2 评论5 发布时间:2017-3-16 15:05

举报

5个回答
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
烧烧更健康,电工的成长之路
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版