for(j=0;j<3000;++j);
}
//LCD寄存器初始化
#definelcm_mdelay(X)Delay(X)
voidlcd_reg_init(void)
{
LCD_WriteReg(0x0000,0x0001);
lcm_mdelay(1000);//atleast100ms
LCD_WriteReg(0x0001,0x0000);//setSSandSMbit//LCD_CtrlWrite(0x0003,0x1030);//setGRAMwritedirectionandBGR=1.
LCD_WriteReg(0x0010,0x1790);
LCD_WriteReg(0x0060,0x2700);
LCD_WriteReg(0x0061,0x0001);
LCD_WriteReg(0x0046,0x0002);
LCD_WriteReg(0x0013,0x8010);
LCD_WriteReg(0x0012,0x80fe);
LCD_WriteReg(0x0002,0x0500);
LCD_WriteReg(0x0003,0x1030);
LCD_WriteReg(0x0030,0x0303);
LCD_WriteReg(0x0031,0x0303);
LCD_WriteReg(0x0032,0x0303);
LCD_WriteReg(0x0033,0x0300);
LCD_WriteReg(0x0034,0x0003);
LCD_WriteReg(0x0035,0x0303);
LCD_WriteReg(0x0036,0x0014);
LCD_WriteReg(0x0037,0x0303);
LCD_WriteReg(0x0038,0x0303);
LCD_WriteReg(0x0039,0x0303);
LCD_WriteReg(0x003a,0x0300);
LCD_WriteReg(0x003b,0x0003);
LCD_WriteReg(0x003c,0x0303);
LCD_WriteReg(0x003d,0x1400);
LCD_WriteReg(0x0092,0x0200);
LCD_WriteReg(0x0093,0x0303);
LCD_WriteReg(0x0090,0x080d);
LCD_WriteReg(0x0003,0x1018);//setGRAMwritedirectionandBGR=1.
LCD_WriteReg(0x0007,0x0173);
}
//LCD初始化
voidSTM3210B_LCD_Init(void)
{
vu16dummy=0;
LCD_CtrlLinesConfig();
lcd_reg_init();
dummy=LCD_ReadReg(0);
}
//设置文字颜色
voidLCD_SetTextColor(vu16Color)
{
TextColor=Color;
}
//设置背景色
voidLCD_SetBackColor(vu16Color)
{
BackColor=Color;
}
//清除行,Line:
0-9
voidLCD_ClearLine(u8Line)
{
LCD_DisplayStringLine(Line,"");}
//LCD清屏
voidLCD_Clear(u16Color)
{
u32index=0;
LCD_SetCursor(0x00,0x0000);
LCD_WriteRAM_Prepare();/*PreparetowriteGRAM*/for(index=0;index<76800;index++)
{
LCD_WriteRAM(Color);
}
}
//LCD光标设置
voidLCD_SetCursor(u8Xpos,u16Ypos)
{
LCD_WriteReg(R32,Xpos);
LCD_WriteReg(R33,Ypos);
}
//在LCD指定位置上显示
voidLCD_DrawChar(u8Xpos,u16Ypos,uc16*c)
{
u32index=0,i=0;
u8Xaddress=0;
Xaddress=Xpos;
LCD_SetCursor(Xaddress,Ypos);
for(index=0;index<24;index++)
{
LCD_WriteRAM_Prepare();/*PreparetowriteGRAM*/for(i=0;i<16;i++)
{
if((c[index]&(1<
{
LCD_WriteRAM(BackColor);
}
else
{
LCD_WriteRAM(TextColor);
}
}
Xaddress++;
LCD_SetCursor(Xaddress,Ypos);
}
}
//显示一个字符
voidLCD_DisplayChar(u8Line,u16Column,u8Ascii){
Ascii-=32;
LCD_DrawChar(Line,Column,&ASCII_Table[Ascii*24]);}
//LCD显示字符串
voidLCD_DisplayStringLine(u8Line,u8*ptr)
{
u32i=0;
u16refcolumn=319;//319;
while((*ptr!
=0)&&(i<20))//20
{
/*DisplayonecharacteronLCD*/
LCD_DisplayChar(Line,refcolumn,*ptr);
/*Decrementthecolumnpositionby16*/
refcolumn-=16;
/*Pointonthenextcharacter*/
ptr++;
/*Incrementthecharactercounter*/
i++;
}
}
//设置LCD显示模式
voidLCD_SetDisplayWindow(u8Xpos,u16Ypos,u8Height,u16Width)
{
if(Xpos>=Height)
{
LCD_WriteReg(R80,(Xpos-Height+1));
}
else
{
LCD_WriteReg(R80,0);
}
LCD_WriteReg(R81,Xpos);
if(Ypos>=Width)
{
LCD_WriteReg(R82,(Ypos-Width+1));
}
else
{
LCD_WriteReg(R82,0);
}
/*VerticalGRAMEndAddress*/
LCD_WriteReg(R83,Ypos);
LCD_SetCursor(Xpos,Ypos);
}
//LCD窗口模式配置
voidLCD_WindowModeDisable(void)
{
LCD_SetDisplayWindow(239,0x13F,240,320);
LCD_WriteReg(R3,0x1018);
}
//LCD画线
voidLCD_DrawLine(u8Xpos,u16Ypos,u16Length,Direction)
{
u32i=0;
LCD_SetCursor(Xpos,Ypos);
if(Direction==Horizontal)u8LCD_WriteRAM(TextColor);
LCD_SetCursor(Xpos-CurX,Ypos+CurY);
LCD_WriteRAM_Prepare();/*PreparetowriteGRAM*/LCD_WriteRAM(TextColor);
LCD_SetCursor(Xpos-CurX,Ypos-CurY);
LCD_WriteRAM_Prepare();/*PreparetowriteGRAM*/LCD_WriteRAM(TextColo