xiatianzhang 发表于 2012-9-18 11:22:08

mail2li 发表于 2012-9-18 11:29:39

指针
。。。。。。。。。。。。。。。。。。

wear778899 发表于 2012-9-18 11:31:46

有字库对应的指针   或者自己编辑的字库   数组定义的首地址

jiaowoxiaolu 发表于 2012-9-18 11:43:52

DISPLYA(int i,int j,char* text);

xiatianzhang 发表于 2012-9-18 11:46:38

lcw_swust 发表于 2012-9-18 15:56:09

楼主搜索“GB2312简体中文编码表”看看
汉字的编码与英文字符的编码是有区别的,程序中可以进行区分,分别处理

xiatianzhang 发表于 2012-9-19 15:00:24

lcw_swust 发表于 2012-9-19 15:37:48

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++;                       
        }

}

LY1208798815 发表于 2012-9-25 15:02:09

{:smile:}{:smile:}
页: [1]
查看完整版本: 汉字如何传递参数?