使用STM32F767芯片驱动7寸屏不能正常显示

2019-03-23 14:34发布

我用STM32F767驱动一款7寸屏,老是不显示。
屏的资料:

AT070TN94 Pre-spec(V01)_0707 M.pdf



部分原理图:

44.jpg

55.jpg



下面说一下软件调试的情况。
现在背光可以亮,屏上有什么东西一闪一闪的。

LCD_Init();                     //LCD初始化

。。。。。。。。。。。。。。。。。。。。。。

进入LCD初始化:

lcddev.id=LTDC_PanelID_Read();        //检查是否有RGB屏接入
        if(lcddev.id!=0)
        {
                LTDC_Init();                            //ID非零,说明有RGB屏接入.
        }

可以读到lcddev.id=0x7016.

然后进到这里

else if(lcdid==0X7016)                
        {
                lcdltdc.pwidth=1024;                        //面板宽度,单位:像素
                lcdltdc.pheight=600;                        //面板高度,单位:像素
        lcdltdc.hsw=20;                                    //水平同步宽度
                lcdltdc.vsw=3;                                    //垂直同步宽度
                lcdltdc.hbp=140;                            //水平后廊
                lcdltdc.vbp=20;                                    //垂直后廊
                lcdltdc.hfp=160;                            //水平前廊
                lcdltdc.vfp=12;                                    //垂直前廊
                LTDC_Clk_Set(360,2,RCC_PLLSAIDIVR_4);//设置像素时钟  45Mhz 
                
                //其他参数待定.

。。。。。。。。。。。。。。。。。。。。。。
u8 LTDC_Clk_Set(u32 pllsain,u32 pllsair,u32 pllsaidivr)
{
        RCC_PeriphCLKInitTypeDef PeriphClkIniture;
        
        //LTDC输出像素时钟,需要根据自己所使用的LCD数据手册来配置!
    PeriphClkIniture.PeriphClockSelection=RCC_PERIPHCLK_LTDC;        //LTDC时钟         
        PeriphClkIniture.PLLSAI.PLLSAIN=pllsain;    
        PeriphClkIniture.PLLSAI.PLLSAIR=pllsair;  
        PeriphClkIniture.PLLSAIDivR=pllsaidivr;
        if(HAL_RCCEx_PeriphCLKConfig(&PeriphClkIniture)==HAL_OK) //配置像素时钟,这里配置为时钟为18.75MHZ
    {
        return 0;   //成功
    }
    else return 1;  //失败    
}

成功。
lcddev.width=lcdltdc.pwidth;
        lcddev.height=lcdltdc.pheight;

#if LCD_PIXFORMAT==LCD_PIXFORMAT_ARGB8888||LCD_PIXFORMAT==LCD_PIXFORMAT_RGB888 
        ltdc_framebuf[0]=(u32*)