?? ili932x.c
字號:
#else
if (y<39)
{
y++;
}
else if (x<14)
{
y=0;
x++;
}
else
{
x=0;
y=0;
}
#endif
}
while(*s!=0);
Set_Cs;
}
/****************************************
寫入32X16的ASCII字符串
*****************************************/
void Lcd_Write32X16String(u8 x,u8 y,u8 x_offset,u8 y_offset,u16 CharColor,u16 CharBackColor,char *s)
{
u8 databuff;
Set_Rs;
do
{
databuff=*s++;
Lcd_Write32X16ASCII(x,y,x_offset,y_offset,CharColor,CharBackColor,databuff);
#if (ID_AM==000)|(ID_AM==010)|(ID_AM==100)|(ID_AM==110)
if (x<14)
{
x++;
}
else if (y<9)
{
x=0;
y++;
}
else
{
x=0;
y=0;
}
#else
if (y<6)
{
y++;
}
else if (x<19)
{
y=0;
x++;
}
else
{
x=0;
y=0;
}
#endif
}
while (*s!=0);
Set_Cs;
}
void Lcd_Write32X16StringClarity(u8 x,u8 y,u8 x_offset,u8 y_offset,u16 CharColor,char *s)
{
u8 databuff;
Set_Rs;
do
{
databuff=*s++;
Lcd_Write32X16ASCIIClarity(x,y,x_offset,y_offset,CharColor,databuff);
#if (ID_AM==000)|(ID_AM==010)|(ID_AM==100)|(ID_AM==110)
if (x<14)
{
x++;
}
else if (y<9)
{
x=0;
y++;
}
else
{
x=0;
y=0;
}
#else
if (y<6)
{
y++;
}
else if (x<19)
{
y=0;
x++;
}
else
{
x=0;
y=0;
}
#endif
}
while(*s!=0);
Set_Cs;
}
/****************************************************************
函數名:Lcd寫1個中文函數
入口參數:x,橫向坐標,由左到右分別是0~15
y,縱向坐標,由上到下分別為0~19
CharColaor,字符的顏色
CharBackColor,字符背景顏色
ASCIICode,相應中文的編碼
也就是說,320240分辨率的顯示屏,橫向能顯示15中文字符,豎向能顯示20行
返回值:無
注意!!!!!如果單獨使用此函數則應該加上Lcd_Rs_H()和Set_Cs;為了優化系統省去了
這個指令,假設此函數執行的上一條語句是寫命令,(RS_L情況)則寫入將出錯
,因為ILI9320認為當RS_L時寫入的是命令
*****************************************************************/
void Lcd_WriteChinese(u8 x,u8 y,u16 x_offset,u16 y_offset,u16 CharColor,u16 CharBackColor,u16 ChineseCode)
{
u8 ByteCounter,BitCounter;
u8 *ChinesePointer;
u8 ChineseBuffer[32];
Lcd_SetBox(x*16,y*16,16,16,x_offset,y_offset);
Lcd_WR_Start();
GetChineseCode(ChineseBuffer,ChineseCode,Chinese_Offset);
ChinesePointer=ChineseBuffer;
for(ByteCounter=0; ByteCounter<32; ByteCounter++)
{
for(BitCounter=0;BitCounter<8;BitCounter++)
{
if((*ChinesePointer & (0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
ChinesePointer++;
}
//Set_Cs;
}
void Lcd_WriteChineseClarity(u8 x,u8 y,u8 x_offset,u8 y_offset,u16 CharColor,u16 ChineseCode)
{
GPIO_InitTypeDef GPIO_InitStructure;
u16 Temp;
u8 ByteCounter,BitCounter;
u8 *ChinesePointer;
u8 ChineseBuffer[32];
Lcd_SetBox(x*16,y*16,16,16,x_offset,y_offset);
Lcd_WR_Start();
GetChineseCode(ChineseBuffer,ChineseCode,Chinese_Offset);
ChinesePointer=ChineseBuffer;
for(ByteCounter=0; ByteCounter<32; ByteCounter++)
{
for(BitCounter=0; BitCounter<8; BitCounter++)
{
if((*ChinesePointer & (0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
ChinesePointer++;
}
//Set_Cs;
}
/****************************************************************
函數名:Lcd寫1個32X32中文函數
入口參數:x,橫向坐標,由左到右分別是0~7
y,縱向坐標,由上到下分別為0~9
CharColaor,字符的顏色
CharBackColor,字符背景顏色
ASCIICode,相應中文的編碼
也就是說,320240分辨率的顯示屏,橫向能顯示7中文字符,豎向能顯示10行
返回值:無
注意!!!!!如果單獨使用此函數則應該加上Lcd_Rs_H()和Set_Cs;為了優化系統省去了
這個指令,假設此函數執行的上一條語句是寫命令,(RS_L情況)則寫入將出錯
,因為ILI9320認為當RS_L時寫入的是命令
*****************************************************************/
void Lcd_Write32X32Chinese(u8 x,u8 y,u8 x_offset,u8 y_offset,u16 CharColor,u16 CharBackColor,u16 ChineseCode)
{
u8 ByteCounter,BitCounter;
u8 *ChinesePointer;
u8 ChineseBuffer[32];
Lcd_SetBox(x*32,y*32,32,32,x_offset,y_offset);
Lcd_WR_Start();
GetChineseCode(ChineseBuffer,ChineseCode,Chinese_Offset);
ChinesePointer=ChineseBuffer;
for(ByteCounter=0; ByteCounter<16; ByteCounter++)
{
for(BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*ChinesePointer)&(0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
for (BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*(ChinesePointer+1)) & (0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
for (BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*ChinesePointer) & (0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
for (BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*(ChinesePointer+1)) & (0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharBackColor);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
ChinesePointer+=2;
}
//Set_Cs;
}
void Lcd_Write32X32ChineseClarity(u8 x,u8 y,u8 x_offset,u8 y_offset,u16 CharColor,u16 ChineseCode)
{
GPIO_InitTypeDef GPIO_InitStructure;
u8 ByteCounter,BitCounter;
u8 *ChinesePointer;
u8 ChineseBuffer[32];
u16 Temp;
Lcd_SetBox(x*32,y*32,32,32,x_offset,y_offset);
Lcd_WR_Start();
GetChineseCode(ChineseBuffer,ChineseCode,Chinese_Offset);
ChinesePointer=ChineseBuffer;
for(ByteCounter=0; ByteCounter<16; ByteCounter++)
{
for(BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*ChinesePointer)&(0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
for(BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*(ChinesePointer+1))&(0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
}
}
for(BitCounter=0; BitCounter<8; BitCounter++)
{
if (((*ChinesePointer)&(0x80 >> BitCounter)) == 0x00)
{
//Set_Rs;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOE, &GPIO_InitStructure);
Clr_nRd;
Set_nRd;
Temp=GPIO_ReadInputData(GPIOE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);
DataToWrite(Temp);
Clr_nWr;
Set_nWr;
}
else
{
//Set_Rs;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
DataToWrite(CharColor);
Clr_nWr;
Set_nWr;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -