注册 登录
查看: 4825|回复: 57

[K60] 【山外LCD】汉字显示

[复制链接]
发表于 2015-1-26 14:07:29 | 显示全部楼层 |阅读模式
山外K60/KL26 已经集成了 汉字显示代码,不过由于忙碌的原因,一直没写相应的教程,现在我们慢慢补充相关的用法说明。
汉字显示需要字幕软件,这里用字模3 软件:



在批量导出字幕选项里填入需要显示的字符串,然后生成字库。
我们的例程默认的汉字显示都是 16*16大小的。


生成后,打开生成的代码文件:
可以看到里面已经生成了字库数据,我们需要把这些数据放入数组里。


在VCAN_ASCII.c 文件里,我们把字库数据放入此文件:
一个汉字的空间是 16*2,而4个汉字则为4*16*2。
  1. unsigned char vcan_str[4*16*2] =
  2. {
  3.     /* 山 */
  4.     0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,
  5.     0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x00,0x08,0x00,0x00,
  6.     /* 外 */
  7.     0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x3E,0x40,0x22,0x60,0x42,0x50,0x42,0x48,
  8.     0xA4,0x44,0x14,0x44,0x08,0x40,0x08,0x40,0x10,0x40,0x20,0x40,0x40,0x40,0x80,0x40,
  9.     /* 论 */
  10.     0x00,0x40,0x20,0x40,0x10,0xA0,0x10,0xA0,0x01,0x10,0x02,0x08,0xF4,0x06,0x11,0x10,
  11.     0x11,0x20,0x11,0x40,0x11,0x80,0x11,0x00,0x15,0x04,0x19,0x04,0x10,0xFC,0x00,0x00,
  12.     /* 坛 */
  13.     0x10,0x00,0x10,0x00,0x11,0xFC,0x10,0x00,0x10,0x00,0xFC,0x00,0x13,0xFE,0x10,0x20,
  14.     0x10,0x20,0x10,0x40,0x10,0x40,0x1C,0x88,0xE1,0x04,0x43,0xFE,0x01,0x02,0x00,0x00,
  15. };

关于 16*2 ,我们也可以用宏LCD_CH_SIZE来代替:
  1. //根据字库来定 (需要在 SD卡 根目录 下 放入 HZLIB.bin 字符文件 )
  2. #define LCD_CH_H    16
  3. #define LCD_CH_W    16

  4. #define LCD_CH_SIZE     (LCD_CH_W*LCD_CH_H/8)         //汉字占用空间大小


我们还需要在 VCAN_ASCII.h 文件里加入数组声明!需要把数组占用的空间大小也写上,方便汉字显示的时候传递字符大小。
  1. extern unsigned char vcan_str[4*16*2];


汉字显示的函数接口在 VCAN_LCD_CH.H 文件里声明:
  1. //下面的显示 函数,是调用 flash 里的字符数据显示汉字
  2. extern void LCD_FChar_CH (Site_t site,const uint8 *strbuf,             uint16 Color,uint16 bkColor);
  3. extern void LCD_FStr_CH  (Site_t site,const uint8 *strbuf,uint16 num,  uint16 Color,uint16 bkColor);

  4. #define LCD_FSTR_CH(site,strbuf,Color,bkColor)   LCD_FStr_CH (site,strbuf,sizeof(strbuf)/LCD_CH_SIZE,Color,bkColor)


LCD_FChar_CH 是显示一个汉字。LCD_FStr_CH 是显示一个汉字字符串,形参num是汉字显示的个数。
LCD_FSTR_CH 实际上就是用宏定义来打包 LCD_FStr_CH  函数,省略了输入汉字字数。要省略输入汉字,必须让其他文件知道汉字数组的大小,所以头文件里 要指定汉字的大小。

LCD 汉字显示的参数跟其他LCD显示函数类似,我这里就省略了,自由发挥吧。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

回复

使用道具 举报

 楼主| 发表于 2015-1-26 14:08:46 | 显示全部楼层
字幕软件的的字幕数据配置如下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 0 反对 2

使用道具 举报

发表于 2015-2-28 20:37:08 | 显示全部楼层
zxc0406 发表于 2015-2-25 18:31
这个 你要用管理员模式打开就应该可以了。

已经可以了,多谢了,可是我也出现了楼上的问题,字体中间会出现横线,怎么办????
回复 支持 1 反对 0

使用道具 举报

发表于 2015-1-26 16:03:53 | 显示全部楼层
超赞啊。正在学这一块的东西。请问山外哥。遇到这种情况是怎么回事?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-26 16:05:04 | 显示全部楼层
liruigood 发表于 1422259433
超赞啊。正在学这一块的东西。请问山外哥。遇到这种情况是怎么回事?
参数设置,常规选项里,设置一下输出文件的路径即可。
来自PC客户端 来自PC客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-26 16:29:48 | 显示全部楼层
好的,问题解决了。
回复 支持 反对

使用道具 举报

发表于 2015-1-26 17:14:39 | 显示全部楼层
前几天都忙着弄LCD显示中文,一直没成功,感觉自己好笨,今天山外哥就发此贴,让我看到了希望,谢谢山外哥
回复 支持 反对

使用道具 举报

发表于 2015-1-27 11:15:21 | 显示全部楼层
这个是怎么回事- -

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-27 11:23:59 | 显示全部楼层
coolstudy 发表于 2015-1-27 11:15
这个是怎么回事- -

没遇到过,自行网络搜索吧。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-27 15:55:34 | 显示全部楼层
字库都是应该写入外部flash芯片(W25Q64等)的吧,节约空间
回复 支持 反对

使用道具 举报

发表于 2015-1-27 21:37:05 | 显示全部楼层
这个还需要SD卡么?调了好久也没调出显示汉字
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-28 00:50:18 | 显示全部楼层
Greece 发表于 2015-1-27 15:55
字库都是应该写入外部flash芯片(W25Q64等)的吧,节约空间

K60的flash大得很,所以直接保存到flash没影响。

我们的汉字显示也有SD卡显示的相关例程的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-28 00:50:49 | 显示全部楼层
风清扬 发表于 2015-1-27 21:37
这个还需要SD卡么?调了好久也没调出显示汉字

不需要SD卡,按上面操作,可以直接读取flash上的汉字字库
回复 支持 反对

使用道具 举报

发表于 2015-1-28 10:43:10 | 显示全部楼层
请问我如何在这个液晶屏上显示比较大的字符,数字?给的例程中,显示字符数字大小有限,如何放大它们呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-28 11:20:50 | 显示全部楼层
风清扬 发表于 2015-1-28 10:43
请问我如何在这个液晶屏上显示比较大的字符,数字?给的例程中,显示字符数字大小有限,如何放大它们呢?

那就像鹰眼那样来显示。

字库,实际上就是图片。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-1-28 12:37:32 | 显示全部楼层
使用取模软件取一个指定大小的字模,在调用LCD_Img_Binary_Z(Site_t site, Size_t size, uint8 *img, Size_t imgsize)显示么?
回复 支持 反对

使用道具 举报

发表于 2015-2-4 01:09:23 | 显示全部楼层
山外メ雲ジ 发表于 2015-1-26 14:08
字幕软件的的字幕数据配置如下图:

山外哥!求帮助呀!为什么在汉字中间会出现一根横线呢??
而且我设置字体的时候也没设置删除线呀




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2015-2-25 18:31:01 | 显示全部楼层
coolstudy 发表于 2015-1-27 11:15
这个是怎么回事- -

这个 你要用管理员模式打开就应该可以了。
回复 支持 反对

使用道具 举报

发表于 2015-3-1 10:07:26 | 显示全部楼层
顶一个                                                                           
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-1 11:25:09 | 显示全部楼层
coolstudy 发表于 2015-2-28 20:37
已经可以了,多谢了,可是我也出现了楼上的问题,字体中间会出现横线,怎么办????

没注册~
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-3 16:55:50 | 显示全部楼层

哦,可以了!!非常感谢~~~~
回复 支持 反对

使用道具 举报

发表于 2015-3-8 19:16:12 | 显示全部楼层
@山外メ雲ジ
山外哥,怎么我用这么软件取到的16进制数不一样的呀,显示也不一样(就是多了一横杠)。

例如:山外论坛:
/* 山 */
0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,
0xFF,0xFF,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x00,0x08,0x00,0x00,
/* 外 */
0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,0x3E,0x40,0x22,0x60,0x42,0x50,0x42,0x48,
0xFF,0xFF,0x14,0x44,0x08,0x40,0x08,0x40,0x10,0x40,0x20,0x40,0x40,0x40,0x80,0x40,
/* 论 */
0x00,0x40,0x20,0x40,0x10,0xA0,0x10,0xA0,0x01,0x10,0x02,0x08,0xF4,0x06,0x11,0x10,
0xFF,0xFF,0x11,0x40,0x11,0x80,0x11,0x00,0x15,0x04,0x19,0x04,0x10,0xFC,0x00,0x00,
/* 坛 */
0x10,0x00,0x10,0x00,0x11,0xFC,0x10,0x00,0x10,0x00,0xFC,0x00,0x13,0xFE,0x10,0x20,
0xFF,0xFF,0x10,0x40,0x10,0x40,0x1C,0x88,0xE1,0x04,0x43,0xFE,0x01,0x02,0x00,0x00,


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-8 19:19:11 | 显示全部楼层
gsc617 发表于 2015-3-8 19:16
@山外メ雲ジ
山外哥,怎么我用这么软件取到的16进制数不一样的呀,显示也不一样(就是多了一横杠)。

没注册。注册后就会去掉那个横线。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-8 19:22:32 | 显示全部楼层
山外メ雲ジ 发表于 2015-3-8 19:19
没注册。注册后就会去掉那个横线。

好的,已解决。在做毕设呢,谢谢了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-8 19:24:36 | 显示全部楼层
gsc617 发表于 2015-3-8 19:22
好的,已解决。在做毕设呢,谢谢了

哈哈,难怪最近没见你。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-8 19:38:38 | 显示全部楼层
山外メ雲ジ 发表于 2015-3-8 19:24
哈哈,难怪最近没见你。

其实也不是,3月份才回学校的,我的毕设题目才开题了两天。
1月份我就到了深圳了,一边玩一边找工作不亦乐乎

回复 支持 反对

使用道具 举报

发表于 2015-3-19 23:34:08 | 显示全部楼层
谢谢山外哥
回复 支持 反对

使用道具 举报

发表于 2015-3-22 13:44:09 | 显示全部楼层
管理员模式是什么?

回复 支持 反对

使用道具 举报

发表于 2015-3-24 17:54:02 | 显示全部楼层
在哪里调用显示汉字的函数,不会?
回复 支持 反对

使用道具 举报

发表于 2015-3-24 17:56:49 | 显示全部楼层
风清扬 发表于 2015-1-28 12:37
使用取模软件取一个指定大小的字模,在调用LCD_Img_Binary_Z(Site_t site, Size_t size, uint8 *img, Size_ ...

楼主贴有说明
回复 支持 反对

使用道具 举报

发表于 2015-3-24 17:57:14 | 显示全部楼层
东方藏狼0 发表于 2015-3-24 17:54
在哪里调用显示汉字的函数,不会?

main函数调用
回复 支持 反对

使用道具 举报

发表于 2015-3-24 19:08:11 | 显示全部楼层
robin 发表于 2015-3-24 17:57
main函数调用

没找到那个显示汉字的函数在哪?好像没有的
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-3-25 15:17:20 | 显示全部楼层
字模3怎么破解?
回复 支持 反对

使用道具 举报

发表于 2015-3-25 15:21:15 | 显示全部楼层

会了
回复 支持 反对

使用道具 举报

发表于 2015-3-25 16:25:47 | 显示全部楼层
ASCII.C里面是不是有添加数组个数限制,我添加了3个后,在MAIN里调用总是提示未定义?
回复 支持 反对

使用道具 举报

发表于 2015-3-25 16:27:09 | 显示全部楼层
东方藏狼0 发表于 2015-3-25 16:25
ASCII.C里面是不是有添加数组个数限制,我添加了3个后,在MAIN里调用总是提示未定义?

没在头文件里加声明
回复 支持 反对

使用道具 举报

发表于 2015-3-25 16:31:15 | 显示全部楼层
东方藏狼0 发表于 2015-3-25 16:25
ASCII.C里面是不是有添加数组个数限制,我添加了3个后,在MAIN里调用总是提示未定义?

有时候还会丢失字
回复 支持 反对

使用道具 举报

发表于 2015-5-8 16:00:48 | 显示全部楼层

那是你代码操作有问题吧。
回复 支持 反对

使用道具 举报

发表于 2015-5-12 12:06:58 | 显示全部楼层
山外大哥,我想在屏幕上写两个按钮来控制输出高低电平,根据画板的例程改了好久都不可以,可不可以帮忙一下。谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-12 13:12:36 | 显示全部楼层
大哥成 发表于 2015-5-12 12:06
山外大哥,我想在屏幕上写两个按钮来控制输出高低电平,根据画板的例程改了好久都不可以,可不可以帮忙一下 ...

判断点是不是落在矩形里来判断。
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-5-12 15:45:32 | 显示全部楼层
我就是这么做的,可是不好用,可以给点关键的代码吗?
回复 支持 反对

使用道具 举报

发表于 2015-5-12 15:47:24 | 显示全部楼层
void Palette_draw_point(Site_t site)
{
    /* 画笔默认为黑色 */
    static uint16 Pen_color=0;
    uint8 n;

    /* 在画板内取色 */
    if(  site.x<40  )
    {
        n = site.y/30;          //色板的位置
        if( n==0 )
        {
         
            LCD_rectangle((Site_t){40,0},(Size_t){20,20}, YELLOW);          //清屏
        }
        if( n==7 )
        {
         
            LCD_rectangle((Site_t){40,0},(Size_t){20,20}, BLUE);          //清屏
        }
    }
   
}
回复 支持 反对

使用道具 举报

发表于 2015-5-12 15:48:43 | 显示全部楼层
把  site.x <40换成别的范围就没法用了
回复 支持 反对

使用道具 举报

发表于 2015-5-29 20:11:01 | 显示全部楼层
请问汉字显示的调用中  LCD_FStr_CH  (Site_t site,const uint8 *strbuf,uint16 num,  uint16 Color,uint16 bkColor);

const uint8 *strbuf  这个写什么
回复 支持 反对

使用道具 举报

发表于 2015-8-8 21:50:29 | 显示全部楼层
请问下怎么注册 Keygen_Zimo3这个吗。机器码和注册码是什么- -
回复 支持 反对

使用道具 举报

发表于 2015-10-26 18:21:53 | 显示全部楼层
//1-9
0x00,0x00,0x00,0x38,0x38,0x38,0x38,0x38,  // 1
0x38,0x38,0x38,0x38,0x38,0x00,0x00,0x00,

0x00,0x00,0x00,0x3E,0x3E,0x06,0x06,0x7E,  // 2
0x7E,0x60,0x60,0x7E,0x7E,0x00,0x00,0x00,

0x00,0x00,0x00,0x7E,0x7E,0x06,0x06,0x3E,  // 3
0x3E,0x06,0x06,0x7E,0x7E,0x00,0x00,0x00,

0x00,0x00,0x00,0x06,0x06,0x66,0x66,0x66,  // 4
0x7E,0x7E,0x06,0x06,0x06,0x00,0x00,0x00,

0x00,0x00,0x00,0x7C,0x7C,0x60,0x60,0x7E,  // 5
0x7E,0x06,0x06,0x7E,0x7E,0x00,0x00,0x00,

0x00,0x00,0x00,0x7C,0x7C,0x60,0x60,0x7E,  // 6
0x7E,0x66,0x66,0x7E,0x7E,0x00,0x00,0x00,

0x00,0x00,0x00,0x7E,0x7E,0x06,0x0E,0x1C,  // 7
0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,

0x00,0x00,0x00,0x7E,0x66,0x66,0x7E,0x7E,  // 8
0x66,0x66,0x66,0x7E,0x7E,0x00,0x00,0x00,

0x00,0x00,0x00,0x7E,0x66,0x66,0x66,0x7E,  // 9
0x7E,0x06,0x06,0x06,0x06,0x00,0x00,0x00,

0x00,0x00,0x00,0x7E,0x7E,0x66,0x66,0x66,  // 0
0x66,0x66,0x66,0x7E,0x7E,0x00,0x00,0x00,
这是自己写的数字字库 替换原来的就可以了  字库文件在VCAN_ACSII.C
回复 支持 反对

使用道具 举报

发表于 2015-11-6 20:25:09 | 显示全部楼层
字模导出文件设置有什么要求
回复 支持 反对

使用道具 举报

发表于 2015-11-6 20:33:40 | 显示全部楼层
山外哥,求助啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-11-6 21:55:18 | 显示全部楼层
insurance 发表于 2015-11-6 20:25
字模导出文件设置有什么要求

要求都写在帖子上了啊
来自安卓客户端来自安卓客户端
回复 支持 反对

使用道具 举报

发表于 2015-12-30 14:45:46 | 显示全部楼层
顶一个
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部