LCD汉字显示自己编写的点阵32位Test_Show_CH_Font32函数

2019-07-21 05:06发布

void Test_Show_CH_Font32(u16 x,u16 y,u8 index,u16 color)
{         
 u8 temp,t,t1;
 u16 y0=y;      
    for(t=0;t<128;t++)//每个32*32的汉字点阵 有128个字节
    {  
          if(t<32)temp=tfont32[index*3][t];           //前32个字节
         else if(t<64)temp=tfont32[index*3+1][t-32]; //中32个字节
         else if(t<96)temp=tfont32[index*3+2][t-64];                  
         else temp=tfont32[index*3+3][t-96];         //后32个字节
         for(t1=0;t1<8;t1++)
        {
            if(temp&0x80)LCD_Draw_Point(x,y,color);//画实心点
            else LCD_Draw_Point(x,y,BACK_COLOR);   //画空白点(使用背景 {MOD})
            temp<<=1;
            y++;
           if((y-y0)==32)
          {
             y=y0;
             x++;
            break;
          }
       }   
    }         
}
我想显示点阵为32的汉字,占用字节在32*32位,我的测试汉字函数如下

void TEST_FONT(void)
{
     u8 t;
     u8 x;
     x=50;
     for(t=0;t<3;t++)//6个汉字
    {
         Test_Show_CH_Font32(x,90,t,RED);
         x+=32;
    }
}
结果在屏幕上显示的“模式一”三个大字是交错的~,希望哪位大侠帮帮忙,或者原子大哥帮帮忙,不甚感激~
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。