[mw_shl_code=c,true]void WriteComm(u16 CMD)
{
*(__IO u16 *) (Bank1_LCD_C) = CMD;
}
void WriteData(u16 tem_data)
{
*(__IO u16 *) (Bank1_LCD_D) = tem_data;
}
/**********************************************
Lcd初始化函数
***********************************************/
void Lcd_Initialize(void)
{
LCD_GPIO_Config();
LCD_FSMC_Config();
LCD_delay(20);
LCD_Rst();
WriteComm(0x0011);
printf("Lcd_Initialize1 ");
LCD_delay(20);
printf("Lcd_Initialize11 ");
WriteComm(0x00D0);
printf("Lcd_Initialize2 ");
WriteData(0x0007);
printf("Lcd_Initialize3 ");
WriteData(0x0040); //0x0041
printf("Lcd_Initialize4 ");
WriteData(0x001C);
printf("Lcd_Initialize5 ");
WriteComm(0x00D1);
WriteData(0x00ff);//0x0000
WriteData(0x00ff); //0x0036 //30 vcm
WriteData(0x00ff); //0x001B //15 vdv
WriteComm(0x00D2);
WriteData(0x0001); // AP0[2:0]
WriteData(0x0011); // DC10[2:0],DC00[2:0]
WriteComm(0x00C0); //****** *******
WriteData(0x0010); // REV & SM & GS
WriteData(0x003B); // NL[5:0]
WriteData(0x0000); // SCN[6:0]
WriteData(0x0002); //0x0012 //02 NDL , PTS[2:0]
WriteData(0x0011); //0x0001 //11 PTG , ISC[3:0]
WriteData(0x00C1);
WriteData(0x0010);
WriteData(0x0010);
WriteData(0x0088);
WriteComm(0x00C5);
WriteData(0x0001); //0x0003
}[/mw_shl_code]
如上面代码,发现有时候WriteComm函数或WriteData函数不能返回,求解。出现这问题时候,在其它地方随便添加代码又可以,再添加几行代码可能又不行。上述代码中Lcd_Initialize的第一个WriteComm或WriteData都能永远返回。 |