调试7寸屏出现问题

2019-07-20 03:11发布

我用STM32F767驱动一款7寸屏,老是不显示。
屏的资料: AT070TN94 Pre-spec(V01)_0707 M.pdf (810.52 KB, 下载次数: 6) 2019-3-18 11:13 上传 点击文件名下载附件
部分原理图:
1.jpg 3.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*)&ltdc_lcd_framebuf;
        lcdltdc.pixsize=4;                                //每个像素占4个字节
#else
    lcdltdc.pixsize=2;                                //每个像素占2个字节
        ltdc_framebuf[0]=(u32*)&ltdc_lcd_framebuf;
#endif         

    //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;                 //数据使能极性
    if(lcdid==0X1018)LTDC_Handler.Init.PCPolarity=LTDC_PCPOLARITY_IIPC;//像素时钟极性
        else LTDC_Handler.Init.PCPolarity=LTDC_PCPOLARITY_IPC;           //像素时钟极性
    LTDC_Handler.Init.HorizontalSync=lcdltdc.hsw-1;                  //水平同步宽度
    LTDC_Handler.Init.VerticalSync=lcdltdc.vsw-1;                    //垂直同步宽度
    LTDC_Handler.Init.AccumulatedHBP=lcdltdc.hsw+lcdltdc.hbp-1; //水平同步后沿宽度
    LTDC_Handler.Init.AccumulatedVBP=lcdltdc.vsw+lcdltdc.vbp-1; //垂直同步后沿高度
    LTDC_Handler.Init.AccumulatedActiveW=lcdltdc.hsw+lcdltdc.hbp+lcdltdc.pwidth-1;//有效宽度
    LTDC_Handler.Init.AccumulatedActiveH=lcdltdc.vsw+lcdltdc.vbp+lcdltdc.pheight-1;//有效高度
    LTDC_Handler.Init.TotalWidth=lcdltdc.hsw+lcdltdc.hbp+lcdltdc.pwidth+lcdltdc.hfp-1;   //总宽度
    LTDC_Handler.Init.TotalHeigh=lcdltdc.vsw+lcdltdc.vbp+lcdltdc.pheight+lcdltdc.vfp-1;  //总高度
    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);                        //清屏

都顺利通过。如果初始化显示黑 {MOD},液晶屏显示也是白 {MOD},其实就是不能显示。
请高手指教,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
chenbingjy
1楼-- · 2019-07-20 07:42
 精彩回答 2  元偷偷看……
chenbingjy
2楼-- · 2019-07-20 08:00
 精彩回答 2  元偷偷看……
chenbingjy
3楼-- · 2019-07-20 12:48
4.jpg
MODE管脚拉高,那是不是就代表DE模式了?
正点原子
4楼-- · 2019-07-20 14:22
chenbingjy 发表于 2019-3-18 11:20
感觉DCLK频率不对,用示波器测10几K。
开发板的DCLK频率我们的示波器测不出来,貌似带宽不 ...

DCLK十几K就不正常咯,这都是得十几M才行的

一周热门 更多>