使用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
签到签到,早上好! 感谢分享,但是图片好像显示不出 zero99 发表于 2017-3-21 16:53
感谢分享,但是图片好像显示不出
之前是正常的不知道为啥图片会没掉 图片需要本地上传的哦,引用网络地址可能会出现无法显示 烧烧更健康,电工的成长之路
页:
[1]