。。。。。。。。。。。。。。。。。。 有字库对应的指针 或者自己编辑的字库 数组定义的首地址 DISPLYA(int i,int j,char* text); 楼主搜索“GB2312简体中文编码表”看看
汉字的编码与英文字符的编码是有区别的,程序中可以进行区分,分别处理 xiatianzhang 发表于 2012-9-19 15:00 static/image/common/back.gif
我的OLED是不带字库的哦!
//--------------------------------------------------
//ASC码映射,把汉字的ASC码变为字库数组序号
//--------------------------------------------------
U16 ascmap(U16 asc)
{
if(asc==0xD5FD)return 5;//'正'的ASC码为0xD5FD,数组序号为5
if(asc==0xD4DA)return 6;//'在'的ASC码为0xD5FD,数组序号为6
//还有其它的汉字,也可以全部做成数组
return 0;//这个汉字不在字库中
}
//--------------------------------------------------
// 输出字符串
//--------------------------------------------------
void DISPLAY(U16 x,U16 y, U8* s)
{
U16 asc;
while(*s)
{
asc=*s;
if(asc>128)//是汉字
{
s++;
if(*s==0)break;
asc=(asc<<8)|*s;//取16位数,得汉字的ASCII码
asc=ascmap(asc);//汉字ASCII变为字库数组序号
Write_1616(asc,x,y);//显示汉字
x+=16;//X座标右移
}
else
{
Write_1608(asc,x,y);//输出16*8点阵
x+=8;//X座标右移
}
s++;
}
} {:smile:}{:smile:}
页:
[1]