打印
[应用相关]

STM32显示通过取模软件取模的汉字

[复制链接]
1183|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一、取模软件设置,参考下图

使用特权

评论回复
沙发
xiaoqizi|  楼主 | 2021-8-4 19:12 | 只看该作者
二、软件参考,正点原子开发板

//放头文件
struct typFNT_GB16 // 汉字字模数据结构体
{
u8 Index[2];// 汉字内码索引,汉字在内存中占两个字节
char Msk[128]; // 点阵码数据
};

//放C文件
//定义汉字点阵结构体,数据由正点原子赠送的取模软件获得
struct typFNT_GB16 code_GB_16[] = // 数据表
{
        {"华",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x70,0x00,0x00,0xF0,0x70,0x00,0x00,0xE0,0x70,0x20,0x01,0xC0,0x70,0x70,0x01,0xC0,0x70,0xF8,0x03,0xC0,0x73,0xC0,0x07,0xC0,0x7F,0x80,
0x0F,0xC0,0x7E,0x00,0x1D,0xC0,0xF8,0x00,0x3D,0xC7,0xF0,0x00,0x39,0xCF,0x70,0x00,0x11,0xC4,0x70,0x08,0x01,0xC0,0x70,0x0E,0x01,0xC0,0x70,0x1C,0x01,0xC0,0x7F,0xFC,0x01,0xC0,0x3F,0xF8,
0x01,0xC3,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,
0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0x00,0x00,0x00},

        {"达",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x38,0x00,0x0C,0x00,0x38,0x00,0x0E,0x00,0x38,0x00,0x07,0x00,0x38,0x00,0x03,0x80,0x38,0x00,0x03,0xC0,0x38,0x00,0x01,0x80,0x38,0x00,
0x00,0x1F,0xFF,0xF8,0x00,0x1F,0xFF,0xF8,0x00,0x1F,0xFF,0xF8,0x00,0x00,0x38,0x00,0x3F,0x00,0x38,0x00,0x3F,0x00,0x30,0x00,0x03,0x00,0x70,0x00,0x03,0x00,0x72,0x00,0x03,0x00,0x6F,0x00,
0x03,0x00,0xE7,0x80,0x03,0x01,0xC3,0xC0,0x03,0x01,0xC1,0xE0,0x03,0x03,0x80,0xF0,0x03,0x07,0x00,0x70,0x03,0x1E,0x00,0x38,0x03,0x9C,0x00,0x38,0x07,0xC8,0x00,0x10,0x0F,0xE0,0x00,0x00,
0x1C,0x7C,0x00,0x00,0x78,0x3F,0xFF,0xFC,0x10,0x0F,0xFF,0xFC,0x00,0x00,0x7F,0xFC,0x00,0x00,0x00,0x00},

        {"川",0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x01,0xC0,0x00,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,
0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,0x01,0x80,0xC0,0x70,
0x03,0x80,0xC0,0x70,0x03,0x80,0xC0,0x70,0x03,0x80,0xC0,0x70,0x03,0x00,0xC0,0x70,0x03,0x00,0xC0,0x70,0x07,0x00,0xC0,0x70,0x07,0x00,0xC0,0x70,0x0E,0x00,0xC0,0x70,0x0E,0x00,0xC0,0x70,
0x1C,0x00,0xC0,0x70,0x3C,0x00,0xC0,0x70,0x18,0x00,0x00,0x70,0x08,0x00,0x00,0x70,0x00,0x00,0x00,0x00},
};



void show_chinese(u16 x,u16 y,u8 size,u8 *p,u16 Word_Color,u16 Back_Color)
{
        u8 k=0,wordByte,color;
        u8 wordNum;//字库字数
        while(*p!='\0')//直到字符串写完
        {
                LCD_Set_Window(x,y,size,size);
                LCD_SetCursor(x,y);
                LCD_WriteRAM_Prepare();
                for(wordNum=0;wordNum<3;wordNum++)
                {
                        if((*p==code_GB_16[wordNum].Index[0])&&(*(p+1)==code_GB_16[wordNum].Index[1]))//匹配汉字内码,汉字在内存中占两个字节
                        {
                                for(wordByte=0;wordByte<128;wordByte++)
                                {
                                        color=code_GB_16[wordNum].Msk[wordByte];
                                        for(k=0;k<8;k++)
                                        {
                                                if((color&0x80)==0x80)//1
                                                {
                                                        LCD->LCD_RAM=Word_Color;
                                                }
                                                else
                                                {
                                                        LCD->LCD_RAM=Back_Color;
                                                }
                                                color=color<<1;
                                        }
                                }
                                p+=2;
                                x+=size;//下一个字
                                if(x>225) //下一行
                                {
                                        x=0;
                                        y+=size;
                                }
                                break;//匹配到了
                        }
                }
        }
}


三、函数调用

show_chinese(30,80,32,"华达川",BLACK,WHITE);       

使用特权

评论回复
板凳
fengm| | 2021-8-8 22:06 | 只看该作者
汉字多了,就不好搜索了  

使用特权

评论回复
地板
sdCAD| | 2021-8-8 22:06 | 只看该作者
怎么生产汉字库呢   

使用特权

评论回复
5
qiufengsd| | 2021-8-8 22:06 | 只看该作者
取模的效果怎么样  

使用特权

评论回复
6
kmzuaz| | 2021-8-8 22:06 | 只看该作者
应该是逆向的吧      

使用特权

评论回复
7
plsbackup| | 2021-8-8 22:07 | 只看该作者
typFNT_GB16 没有看明白   

使用特权

评论回复
8
mnynt121| | 2021-8-8 22:07 | 只看该作者
怎么做大量的处理呢  

使用特权

评论回复
9
soodesyt| | 2021-8-8 22:07 | 只看该作者
如何确定占用几个字符的

使用特权

评论回复
10
ghuca| | 2021-8-8 22:08 | 只看该作者
              这个软件是什么

使用特权

评论回复
11
232321122| | 2021-8-8 22:08 | 只看该作者
就需要确定汉字的 位置了  

使用特权

评论回复
12
aspoke| | 2021-8-8 22:08 | 只看该作者
这种读取的方式可行的  

使用特权

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

本版积分规则

71

主题

3950

帖子

3

粉丝