各位大神,小弟初学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
一周热门 更多>