F429使用LTDC驱动7寸RGB屏

2019-07-20 05:30发布

屏幕为AT07002,兼容群创AT07TN92,时序表跟原子的7寸RGBLCD基本一样,用的原子的配套程序但是显示结果是如图所示的花屏。
不知道问题出在哪里,希望有大佬指点一下修改方向。

        if(lcdid==0X7084)
        {
                lcdltdc.pwidth=800;                            //面板宽度,单位:像素
                lcdltdc.pheight=480;                    //面板高度,单位:像素
                lcdltdc.hsw=30;                                    //水平同步宽度
                lcdltdc.vsw=13;                                    //垂直同步宽度
                lcdltdc.hbp=16;                                    //水平后廊
                lcdltdc.vbp=10;                                    //垂直后廊
                lcdltdc.hfp=210;                            //水平前廊
                lcdltdc.vfp=22;                                    //垂直前廊
        LTDC_Clk_Set(396,3,RCC_PLLSAIDIVR_4); //设置像素时钟 33M(如果开双显,需要降低DCLK到:18.75Mhz  300/4/4,才会比较好)
        }


    //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_IPC;        //像素时钟极性
    LTDC_Handler.Init.HorizontalSync=lcdltdc.hsw;          //水平同步宽度
    LTDC_Handler.Init.VerticalSync=lcdltdc.vsw;            //垂直同步宽度
    LTDC_Handler.Init.AccumulatedHBP=lcdltdc.hsw+lcdltdc.hbp; //水平同步后沿宽度
    LTDC_Handler.Init.AccumulatedVBP=lcdltdc.vsw+lcdltdc.vbp; //垂直同步后沿高度
    LTDC_Handler.Init.AccumulatedActiveW=lcdltdc.hsw+lcdltdc.hbp+lcdltdc.pwidth;//有效宽度
    LTDC_Handler.Init.AccumulatedActiveH=lcdltdc.vsw+lcdltdc.vbp+lcdltdc.pheight;//有效高度
    LTDC_Handler.Init.TotalWidth=lcdltdc.hsw+lcdltdc.hbp+lcdltdc.pwidth+lcdltdc.hfp;   //总宽度
    LTDC_Handler.Init.TotalHeigh=lcdltdc.vsw+lcdltdc.vbp+lcdltdc.pheight+lcdltdc.vfp;  //总高度
    LTDC_Handler.Init.Backcolor.Red=0;           //屏幕背景层红 {MOD}部分
    LTDC_Handler.Init.Backcolor.Green=0;         //屏幕背景层绿 {MOD}部分
    LTDC_Handler.Init.Backcolor.Blue=0;          //屏幕背景 {MOD}蓝 {MOD}部分
    HAL_LTDC_Init(&LTDC_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);                        //清屏

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。