使用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*)



7条回答
wenyangzeng
1楼 · 2019-03-23 20:07.采纳回答
 精彩回答 2  元偷偷看…… 0人看过
chenbingjy
2楼-- · 2019-03-24 01:00
SDRAM_Init();                   //初始化SDRAM
这个已经初始化了
chenbingjy
3楼-- · 2019-03-24 03:42

看了看手册,把程序改成这样,还是不行:

666.jpg







chenbingjy
4楼-- · 2019-03-24 05:40
 精彩回答 2  元偷偷看……
chenbingjy
5楼-- · 2019-03-24 08:07

888.jpg



感觉DCLK频率不对,用示波器测10几K。
开发板的DCLK频率我们的示波器测不出来,貌似带宽不够。


chenbingjy
6楼-- · 2019-03-24 09:48

我买的开发板自带的屏分辨率是1024*600

999.jpg




现在用的屏是800*480

aaa.jpg




说M2:M1:M0
1024*600是010,800*480是001.
所以电路有问题,我把电阻焊下来,飞线。
结果屏变成了粉红 {MOD},还是有鬼影。

bbb.jpg




高手给看看,哪里有问题?谢谢!

chenbingjy
7楼-- · 2019-03-24 14:33
 精彩回答 2  元偷偷看……

一周热门 更多>