请教在 tft屏上显示中文的问题
这个是我从tb上买的一块2.4寸 tft arduino模块,显示英文,画个圆什么的都有现成函数,直接调用即可,就是到现在我还没弄明白如何才能显示中文。查了许多许多的资料,取模软件也都有,但依然无法将这块知识联系起来,弄了3个晚上了,实在有些乱,在此求大神指点吧。一、使用的是ILI9341_V2.0的库
假如取模出来的数组设为const unsigned char hanzi[????]{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00},
请问 hanzi[????]数组内部定义多少根据什么来算呢
二、卖家提供的资料中说下面代码是匹配的16*16的显示函数
void Fast_DrawFont_GBK16(uint x, uint y, uint fc, uint bc, uchar *s)
{
unsigned char i,j;
unsigned short k;
uint HZnum;
HZnum=sizeof(hz16)/sizeof(typFNT_GBK16);
while(*s)
{
if((*s) >= 128)
{
for (k=0;k<HZnum;k++)
{
if ((hz16.Index==*(s))&&(hz16.Index==*(s+1)))
{ Lcd_SetRegion(x,y,x+16-1,y+16-1);
for(i=0;i<16*2;i++)
{
for(j=0;j<8;j++)
{
if(hz16.Msk&(0x80>>j)) LCD_WriteData_16Bit(fc);
else
{
if (fc!=bc) LCD_WriteData_16Bit(bc);
}
}
}
}
}
s+=2;x+=16;
}
}
}
else
s+=1;
}
}
问题1、这个代码理解起来有难度,大神可以简单帮我说几句理清一下思路吗,个人认为这个是扫描汉字(擦,你这说的不是废话吗!@?)
问题2、这个代码如何与数组联系起来,直接调用Fast_DrawFont_GBK16函数就可以直接显示出一个汉字(高手勿喷,就不会这里的转化,有数组,有函数,怎么联系?)
问题3、麻烦给一个只显示一个汉字的demo,我好照葫芦画瓢
问得有点多,先谢谢大家咯,问题三可以不回答,再次感谢
自己帮忙顶一下,7点多搞到11点多,辛苦了····:):'(:$ 你好。你想显示什么东西。可以简单介绍一下吗? 大概看了看这个还是很简单的啊,显示的核心部分就是if(hz16.Msk&(0x80>>j)) LCD_WriteData_16Bit(fc);
else
{
if (fc!=bc) LCD_WriteData_16Bit(bc);
这里的方式跟LED点阵的驱动方法是一样的 fc应该是代表的 font color ;汉字 HZ16的意思 是字体字模的数组
HZnum=sizeof(hz16)/sizeof(typFNT_GBK16);//这句话是计算字的个数
hz16.Msk&(0x80>>j)//这是取的第k-1个字的第一个uchar 然后进行显示
大概就是这样吧
天下无双 发表于 2015-12-16 20:00 static/image/common/back.gif
大概看了看这个还是很简单的啊,显示的核心部分就是if(hz16.Msk&(0x80>>j)) LCD_WriteData_16B ...
还是不太理解,大神能给一个简单的显示汉字的源程序吗,我好照葫芦画瓢
页:
[1]