EBOOT初始化LCD的时候要调用SMDK6410\SRC\DRIVERS\DISPLAY\s3c6410_ldi_lib\s3c6410_ldi.C中的LDI_fill_output_device_information函数来初始化寄存器的值,系统启动中LCD驱动也调用了这个函数,现在的问题是 pDeviceInfo->RGBOutMode = DISP_16BIT_RGB565_P;
pDeviceInfo->uiWidth = 480;
pDeviceInfo->uiHeight = 272;
pDeviceInfo->VBPD_Value = 2;
pDeviceInfo->VFPD_Value = 2;
pDeviceInfo->VSPW_Value = 10;
pDeviceInfo->HBPD_Value = 2;
pDeviceInfo->HFPD_Value = 2;
pDeviceInfo->HSPW_Value = 41;
pDeviceInfo->VCLK_Polarity = IVCLK_FALL_EDGE;
pDeviceInfo->HSYNC_Polarity = IHSYNC_LOW_ACTIVE;
pDeviceInfo->VSYNC_Polarity = IVSYNC_LOW_ACTIVE;
pDeviceInfo->VDEN_Polarity = IVDEN_HIGH_ACTIVE;
pDeviceInfo->PNR_Mode = PNRMODE_RGB_P;
pDeviceInfo->VCLK_Source = CLKSEL_F_LCDCLK;
pDeviceInfo->VCLK_Direction = CLKDIR_DIVIDED;
pDeviceInfo->Frame_Rate = 60;
break;
pDeviceInfo->Frame_Rate = 60 设置它为60启动EBOOT后用示波器可以看到频率,但是等加载LCD驱动后系统频率变低,3倍以下,最近在调OLED,4.3寸屏频率不对就白屏,换成其他型号的屏,(pDeviceInfo->Frame_Rate = 60一样),但是用示波器看出来的频率不一样,跟踪代码没发现那里修改了呀,那位知道怎么回事啊?
这周必须调通的,大家帮帮忙!
------解决方案--------------------
如果你确认你的LCD驱动中和Eboot中对LCD的配置完全一样的话,那你可能要看一下你的处理器的主频是否有变化。LCD的时钟频率可能是从某个PLL上面分出来的,如果这个PLL的频率被改变,LCD的时钟频率可能也就变了。希望对你有帮助。
------解决方案--------------------
我们知道LCD的clock是由HCLK提供的,假如楼主的eboot和LCD驱动对HCLK的设置不一样,就有可能出现上面的情况,#1楼说的很好。
------解决方案--------------------
时钟频率对了,可是显示还是白屏,怎么回事啊?
时钟频率是在datasheet的范围
有可能你上面的参数设置不对,还是lcd的莫个引脚不对