📄 字符字串显示函数库.c
字号:
0x06,0x06,0x06,0x06,0x66,0x66,0x3c,0x00,
0x00,0x00,0xe0,0x60,0x60,0x66,0x6c,0x78,
0x78,0x6c,0x66,0xe6,0x00,0x00,0x00,0x00,
0x00,0x00,0x38,0x18,0x18,0x18,0x18,0x18,
0x18,0x18,0x18,0x3c,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xec,0xfe,0xd6,
0xd6,0xd6,0xd6,0xd6,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,
0x66,0x66,0x66,0x66,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0xc6,
0xc6,0xc6,0xc6,0x7c,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xdc,0x66,0x66,
0x66,0x66,0x66,0x7c,0x60,0x60,0xf0,0x00,
0x00,0x00,0x00,0x00,0x00,0x76,0xcc,0xcc,
0xcc,0xcc,0xcc,0x7c,0x0c,0x0c,0x1e,0x00,
0x00,0x00,0x00,0x00,0x00,0xdc,0x76,0x62,
0x60,0x60,0x60,0xf0,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x7c,0xc6,0x60,
0x38,0x0c,0xc6,0x7c,0x00,0x00,0x00,0x00,
0x00,0x00,0x10,0x30,0x30,0xfc,0x30,0x30,
0x30,0x30,0x36,0x1c,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xcc,0xcc,0xcc,
0xcc,0xcc,0xcc,0x76,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x66,0x66,0x66,
0x66,0x66,0x3c,0x18,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,
0xd6,0xd6,0xfe,0x6c,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xc6,0x6c,0x38,
0x38,0x38,0x6c,0xc6,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0xc6,0xc6,0xc6,
0xc6,0xc6,0xc6,0x7e,0x06,0x0c,0xf8,0x00,
0x00,0x00,0x00,0x00,0x00,0xfe,0xcc,0x18,
0x30,0x60,0xc6,0xfe,0x00,0x00,0x00,0x00,
0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,
0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,
0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,
0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe
};
U16 Cursor=0;//定义光标 0~~600 以字符为单位
/************************************************************
*函数名:Slib_Init
*功能:初始化光标位置为:第0行(0~14)第0列(0~39)
*入口参数:无
*出口参数:无
************************************************************/
void Slib_Init(void)
{
Cursor=0;//第0行(0~14)第0列(0~39)
}
/************************************************************
*函数名:Slib_SetCursor
*功能:设置光标位置
*入口参数:y---第y行,取值范围是:0-14,即总共15行
x---第x列,取值范围是:0-39,即总共40列
*出口参数:无
************************************************************/
void Slib_SetCursor(U8 y,U8 x)
{
Cursor=y*40+x;//总共可以显示15行,每行40个字符
}
/************************************************************
*函数名:Slib_PutChar
*功能:把字符送入指定显存单元
*入口参数:y---第y行,取值范围是:0-14,即总共15行
x---第x列,取值范围是:0-39,即总共40列
pchar---要送入的字符的地址
*出口参数:无
************************************************************/
void Slib_PutChar(U8 y,U8 x,char *pchar)
{
U8 temp_char;
U8 i;
temp_char=(unsigned char)*pchar;
//temp_char=0x30;
for (i=0;i<16;i++)
{
frameBuffer1[y*16+i][(unsigned char)(x/4)] &= ~((U32)(0xff<<(8*(3-(x%4)))));
frameBuffer1[y*16+i][(unsigned char)(x/4)] |= (Ascii[temp_char*16+i])<<(8*(3-(x%4)));
}
}
/************************************************************
*函数名:Slib_Putstr
*功能:把字符串送二级显示缓冲区,不是显示屏
*入口参数:pstr---字符串地址
*出口参数:无
************************************************************/
void Slib_PutStr(char *pstr)
{
U8 xx,yy;
while(*pstr)
{
if(*pstr=='\n')
{
Cursor=((U8)(Cursor/40)+1)*40;
pstr++;
}
xx=(U8)(Cursor%40);
yy=(U8)(Cursor/40);
Slib_PutChar(yy,xx,pstr);
pstr++;
Cursor++;
if(Cursor == 600) //超出屏幕范围:15行*40个字符=600
Cursor=0;
}
}
/************************************************************
*函数名:Slib_Printf
*功能:在LCD屏幕上显示字符串,但不能显示汉字,
功能及用法都类似于标准C中的printf函数!
*入口参数:format---要输出的字符串及指定的格式字符串
*出口参数:无
************************************************************/
void Slib_Printf(char *format,...)
{
va_list ap;
char string[256];
va_start(ap,format);
vsprintf(string,format,ap);
Slib_PutStr(string);
va_end(ap);
}
/************************************************************
*函数名:Slib_ClearScr
*功能:清除LCD屏幕上显示的内容,也相当于清空显示缓冲区
*入口参数:无
*出口参数:无
************************************************************/
void Slib_ClearScr(void)
{
int i,j;
for(j=0;j<(320);j++)//LCD屏幕的高度位320个像素
{
for(i=0;i<(240*8/32);i++)//LCD屏幕的宽度是240个像素,ARM7的地址是4B(32位)对齐,所以要除以32
{
frameBuffer1[j][i]=0x00000000;//frameBuffer1是U32(unsigned int)类型数组指针变量
}
}
}
/*
void Slib_PutChar_Color(U8 y,U8 x,char *pchar,U8 C)
{
U8 temp_char;
U8 i,j;
temp_char=(unsigned char)*pchar;
// temp_char=0x30;
for (i=0;i<16;i++)
{
for(j=0;j<8;j++)
{
frameBuffer1[y*16+i][(unsigned char)((x+j)/4)] &= ~((U32)(0xff << (8*(3-(x%4)))));
if((Ascii[temp_char*16+i]&(0x80>>j))!=0)
frameBuffer1[y*16+i][(unsigned char)((x+j)/4)] |= (C) << (8*(3-(x%4)));
}
}
}
*/
//void Slib_PutStr_Color(char *pstr,U8 color)
//{
// U8 xx,yy;
// //U8 str;
// while(*pstr)
// {
// //str=(unsigned char)*pstr;
// if(*pstr=='\n')
// {
// Cursor=((U8)(Cursor/40)+1)*40;
// pstr++;
// }
// xx=(U8)(Cursor%40);
// yy=(U8)(Cursor/40);
//
// Slib_PutChar_Color(yy,xx,/*str*/pstr,color);
// pstr++;
// Cursor++;
// if(Cursor == 600) //超出屏幕范围 15行 X 40个字符=600
// Cursor=0;
// }
//}
/*
//显示字符串
void Slib_Printf_Color(char *fmt,...)
{
va_list ap;
char string[256];
va_start(ap,fmt);
vsprintf(string,fmt,ap);
Slib_PutStr(string);
va_end(ap);
//Reflash_LCD();
}
//清显示缓冲区
void Slib_ClearScr_Color(void)
{
int i,j;
for(j=0;j<320;j++)
for(i=0;i<(240/32);i++)
{
frameBuffer1[j][i]=0x00000000;
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -