为什么采用汉字取模方式显示数字,但只能显示一部分数字

2019-07-15 22:20发布

各位大神,小弟初学TFT屏,将汉字显示程序改一下显示数字,但只能显示上面的一部分,下面的显示不了,不知为什么,求各位解答。
void PutGB2448(unsigned short x, unsigned short  y, unsigned char c[1], unsigned int fColor,unsigned int bColor)
{
        unsigned int i,j,k;

        Address_set(x, y,x+24-1, y+48-1);

        for (k=0;k<4;k++)
         { //4标示自建汉字库中的个数,循环查询内码
          if ((codeGB_2448[k].Index[0]==c[0])&&(codeGB_2448[k].Index[1]==c[1]))
          {
            for(i=0;i<144;i++)
                {
                  unsigned short m=codeGB_2448[k].Msk[i];
                  for(j=0;j<8;j++)
                  {
                        if((m&0x80)==0x80)
                           {
                                LCD_WR_DATA(fColor);
                                }
                        else {
                                LCD_WR_DATA(bColor);
                                }
                        m<<=1;
                        }
                  }
                }  
          }       
}
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
// -------------------------------------------------------------- //
struct  typFNT_GB2448                 // 汉字字模数据结构
{
       unsigned char  Index[1];               // 字符内码索引       
       unsigned char   Msk[144];                        // 点阵码数据
};

/////////////////////////////////////////////////////////////////////////
// 汉字字模表                                                          //
// 汉字库: 宋体16.dot,横向取模左高位,数据排列:从左到右从上到下         //
/////////////////////////////////////////////////////////////////////////
code struct  typFNT_GB2448 codeGB_2448[] =              // ASCII
{"E",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  // -E-
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
        0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
        0xC0,0x1C,0x01,0xC0,0x1C,0x00,0xE0,0x1C,
        0x00,0x60,0x1C,0x00,0x20,0x1C,0x00,0x30,
        0x1C,0x00,,,,,一些数组,没全选}

比如显示数字5,就只能显示上面一部分,E显示上面异步分,相当于F

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。