void Show_Str(u8 x,u16 y,u8*str,u8 size,u8 mode)
{
u8 bHz=0; //字符或者中文
while(*str!=0)//数据未结束
{
if(!bHz)
{
if(*str>0x80)bHz=1;//中文
else //字符
{
if(x>(LCD_W-size/2))//换行
{
y+=size;
x=0;
}
if(y>(LCD_H-size))break;//越界返回
if(*str==10)//换行符号 'n' //
这里修改了 可以向使用printf(“n”);一样换行了
{
y+=size;
x=0;
str++;
con
tinue; //
这里修改了,因为换行后直接判断下一个字符,因为后面还有个str++
}
else LCD_ShowChar(x,y,*str,size,mode);//有效部分写入
str++;
x+=size/2; //字符,为全字的一半
}
}else//中文
{
bHz=0;//有汉字库
if(x>(LCD_W-size))//换行
{
y+=size;
x=0;
}
if(y>(LCD_H-size))break;//越界返回
Show_Font(x,y,str,size,mode); //显示这个汉字,空心显示
str+=2;
x+=size;//下一个汉字偏移
}
}
}
附录:ASCII码表
http://moodle.hsshn.pudong-edu.sh.cn/file.php/99/resource/ASCII.htm