打印
[STM32F1]

一个TFT的思考~(sorry,分不够了~)

[复制链接]
1350|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
aoty|  楼主 | 2014-2-19 08:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟最近调试TFT,不过我最近遇到一个新的问题~就是我的汉字库(一个数组)里只有175个,但是我又不想把网上的字库下载到Flash里,我用取模软件取了字以后,加到字库里,加一个还好,但是加多了,比如加了两个,如果显示倒数第二个的话,就显示不出来,而是显示最后一个~,下面是我的程序,大家看看~

/*******************************************
* 函数名: LCD_DisplayStringHZ
* 输入参数:
*                Xpos : X坐标 0 - 399
*                Ypos : Y坐标 0 - 239
*                c                : 字符串指针
* 返回值: 无
*函数说明:画一个字符串        支持汉字
*********************************************/
void LCD_DisplayStringHZ(uint16_t Xpos, uint16_t Ypos, uint8_t *ptr)
{
        uint32_t i = 0;
        uint8_t code1=0;
        uint8_t code2=0;
        uint32_t address=0;
        uint32_t k=0;
        while ((*ptr != 0) & (i < 40))
        {
                code1 = *ptr;        /* ascii代码 */
                if (code1 < 0x80)
                {
                        LCD_DrawCharHZ(Xpos, Ypos, &Ascii16[code1 * 16], 8);        /* 16 表示1个字符字模的字节数 */
                        Xpos += 8;                /* 列地址+8 */
                }
                else        /* 汉字内码 */
                {
                        code2 = *++ptr;
                        if (code2 == 0)
                                break;
                        for (k = 0; k < HZ_COUNT; k++)
                        {
                                address = k * 34;
                                if ((code1 == g_Hz16[address + 0]) && (code2 == g_Hz16[address + 1]))
                                {
                                        address += 2;
                                        break;
                                }                               
                        }
                        address = (uint32_t)&g_Hz16[address];
                        LCD_DrawCharHZ(Xpos, Ypos, (const uint8_t *)address, 16);
                        Xpos += 16;                /* 列地址+16 */
                }
                ptr++;                        /* 指向下一个字符 */
                i++;
        }
        i = 0;code1=0;code2=0;address=0;k=0;
}
沙发
aoty|  楼主 | 2014-2-19 10:39 | 只看该作者
顶!!!!

使用特权

评论回复
板凳
renqinglei| | 2014-2-19 12:49 | 只看该作者

使用特权

评论回复
地板
aoty|  楼主 | 2014-2-19 16:11 | 只看该作者
renqinglei 发表于 2014-2-19 12:49

呵呵~问题解决了~那个我对程序的理解不够~

使用特权

评论回复
5
outstanding| | 2014-2-19 20:05 | 只看该作者

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:很高兴注册21IC

31

主题

207

帖子

1

粉丝