forcexda 发表于 2024-1-20 22:05 还没成功么 |
你这里不同字号用了不同的函数,那么字体的字节数就固定了,但函数里确还要计算字节数,既然调试有问题,就把函数尽量简化吧 |
人中狼 发表于 2024-1-19 18:51 可是这个例程的字库是调用存在rom里的字库,不是外部字库,根本没有flash,我在stm32最小系统板上尝试过是正常的 |
感觉还是你选的例程的问题,你选的例程是从外部字库芯片取字体数据,并不适合你现在这种字库的调用方式 |
forcexda 发表于 2024-1-18 19:15 你改成GB2312,把project清空一遍,中文重新打一遍,然后重新编译下载,有stlink的话,最好是仿真看看哪一步出了问题 |
forcexda 发表于 2024-1-18 15:16 拍个效果图看看,我看代码没看出有啥问题。另外你用utf-8的话,应该是无法显示才对啊 |
yzw846562238 发表于 2024-1-18 14:14 不刷图片和其他文字的话,字符出来还是有问题,主要是间距问题 |
forcexda 发表于 2024-1-17 19:36 容我看看 |
人中狼 发表于 2024-1-18 10:55 没有哦,这里只做了移植,没有改过汉字部分的代码 |
好好参考一下原来的例程吧,感觉你把汉字显示部分自己改复杂了 |
yzw846562238 发表于 2024-1-17 13:01 似乎不行,虽然可以显示了,但是显示还是不算正常,无法正确显示字符间距 |
yzw846562238 发表于 2024-1-17 13:01 刚才发现,也有gb2312的锅,必须把gb2312改成utff-8,不然字符不显示,大佬这个字符编码有没有万金油的那种,就是所有的字符都可以用的那种【捂脸哭】,有点打脑阔 |
yzw846562238 发表于 2024-1-17 13:01 大佬,我顺着你的思路,把unsigned char Index[2]; 改成char Index[4];居然编译通过了,然后正常显示字符,但是我还是没明白为什么[笑哭],大佬你看一下代码,给我指点一下吧 |
yzw846562238 发表于 2024-1-17 13:01 代码我打包上传了,麻烦大佬帮我看看,ide用的是keil,版本5.23 |
464.4 KB, 下载次数: 4
forcexda 发表于 2024-1-16 21:18 "unsigned char [2]" "???",0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10, 感觉是你的中文被解析成了4字节,其实gb2312应该是2字节的。 |
forcexda 发表于 2024-1-16 21:18 是keil么,还是其他ide,代码看着没啥问题,要不把工程打包发上来看看? |
yzw846562238 发表于 2024-1-16 08:58 忘了加代码了,那个结构体是这样的 typedef struct { unsigned char Index[2]; unsigned char Msk[32]; }typFNT_GB16; const typFNT_GB16 tfont16[]={ "中",0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10, 0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,/*"中",0*/ "景",0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x80,0x00,0xFF,0x7F,0x00,0x00, 0xF8,0x0F,0x08,0x08,0x08,0x08,0xF8,0x0F,0x80,0x00,0x84,0x10,0xA2,0x20,0x40,0x00,/*"景",1*/ "园",0x00,0x00,0xFE,0x3F,0x02,0x20,0xF2,0x27,0x02,0x20,0x02,0x20,0xFA,0x2F,0x22,0x21, 0x22,0x21,0x22,0x21,0x12,0x29,0x12,0x29,0x0A,0x2E,0x02,0x20,0xFE,0x3F,0x02,0x20,/*"园",2*/ "电",0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F, 0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x50,0x80,0x40,0x80,0x40,0x00,0x7F,/*"电",3*/ "子",0x00,0x00,0xFE,0x1F,0x00,0x08,0x00,0x04,0x00,0x02,0x80,0x01,0x80,0x00,0xFF,0x7F, 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,/*"子",4*/ }; |
yzw846562238 发表于 2024-1-16 08:58 是GB2312,我需要修改成UTF-8吗,大佬经验好丰富,一眼就看出来是GB2312编码格式了,麻烦大佬细说一下,我还是没明白应该怎么修改 |
你用的keil?中文编码格式用的是GB2312吗?typFNT_GB16这个结构体类型定义的可能存在问题,在这个单片机编译器上不能这么写 |