4562|10

483

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

中文,英文在TFTLCD上混合显示问题 [复制链接]

刚给W25X16烧写了个32*32的中文字库,发现标点符号不能显示。
如果要做一个很自然的显示函数就能解决混合显示,要怎么弄啊?
中文是两个char映射到一个汉字,而ask码只要一个char就能映射过去
当然如果不怕麻烦也可以分开,英文和汉字分别用一个函数显示。
感觉应该有一种字库包含英文,汉字和标点什么的,只是这种字库的话,汉字是怎么映射过去的呢?
此帖出自stm32/stm8论坛

最新回复

汉字的最高位是1,2个字节,ASCII是0,1个字节,由此不是很好判断?比如“A":0X41,"a":0x61 [attach]191254[/attach]   详情 回复 发表于 2015-3-17 07:48
点赞 关注
 

回复
举报

379

帖子

3

TA的资源

一粒金砂(高级)

沙发
 
英文字母的最高位是0,很好判断的。
此帖出自stm32/stm8论坛

点评

但是在程序中 ,比如定义一个字符串 str =“abc和汉字” 在显示a的时候 High8bit=*str; Low8bit=*(str+1); 这个Low8bit就指到了b...这个怎么弄?  详情 回复 发表于 2015-3-16 20:30
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

板凳
 
也可以将它放到一个字库里。或者象楼上所说,判断全角半角后再显示。
此帖出自stm32/stm8论坛

点评

你的意思是不是这样:现在已经下载好的(在w25x16里面)汉字字库不动,然后再找个地方(比如stm32的内置flash)放128个ask码的字模码,在程序中,判断高位为0就去flash里面读取字模点阵数据?  详情 回复 发表于 2015-3-16 20:03
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

4
 
128就是分水岭,具体查看字库索引定义
此帖出自stm32/stm8论坛
 
 
 

回复

32

帖子

0

TA的资源

一粒金砂(初级)

5
 
英文字母的最高位是0,
128就是分水岭,
此帖出自stm32/stm8论坛

点评

那你的意思是说,比如字母a ,它就内码就大概是 0x**+0X**,但是我通过发现,MDK下面,字符串“a”就是对应到ASK码的值... 那我们要显示“a和汉字”这个字符串的话,如果按a一个char来定位的话,后面的汉字就  详情 回复 发表于 2015-3-16 23:42
 
 
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

6
 
dontium 发表于 2015-3-15 17:05
也可以将它放到一个字库里。或者象楼上所说,判断全角半角后再显示。
你的意思是不是这样:现在已经下载好的(在w25x16里面)汉字字库不动,然后再找个地方(比如stm32的内置flash)放128个ask码的字模码,在程序中,判断高位为0就去flash里面读取字模点阵数据?



此帖出自stm32/stm8论坛

点评

一般的汉字库,应该有ASCII字符的。如果真的没有也没关系,因为它占的空间很小,放在单片机内部即可  详情 回复 发表于 2015-3-16 21:33
 
 
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

7
 
wenyangzeng 发表于 2015-3-15 16:04
英文字母的最高位是0,很好判断的。


但是在程序中 ,比如定义一个字符串
str =“abc和汉字”

在显示a的时候

High8bit=*str;     

Low8bit=*(str+1);


这个Low8bit就指到了b...这个怎么弄?
此帖出自stm32/stm8论坛
 
 
 

回复

1万

帖子

25

TA的资源

裸片初长成(高级)

8
 
yl20084784 发表于 2015-3-16 20:03
你的意思是不是这样:现在已经下载好的(在w25x16里面)汉字字库不动,然后再找个地方(比如stm32的内置flash)放128个ask码的字模码,在程序中,判断高位为0就去flash里面读取字模点阵数据?



一般的汉字库,应该有ASCII字符的。如果真的没有也没关系,因为它占的空间很小,放在单片机内部即可
此帖出自stm32/stm8论坛
 
 
 

回复

483

帖子

0

TA的资源

纯净的硅(初级)

9
 
foxglove 发表于 2015-3-16 14:27
英文字母的最高位是0,
128就是分水岭,



那你的意思是说,比如字母a ,它就内码就大概是 0x**+0X**,但是我通过发现,MDK下面,字符串“a”就是对应到ASK码的值...
那我们要显示“a和汉字”这个字符串的话,如果按a一个char来定位的话,后面的汉字就是乱码,按两个char也是乱码。。。
此帖出自stm32/stm8论坛

点评

汉字的最高位是1,2个字节,ASCII是0,1个字节,由此不是很好判断?比如“A":0X41,"a":0x61 [attachimg]191254[/attachimg]  详情 回复 发表于 2015-3-17 07:48
 
 
 

回复

503

帖子

1

TA的资源

一粒金砂(高级)

10
 
本帖最后由 曾经in 于 2015-3-17 00:05 编辑

中英文肯定要区分开操作啊,英文读一个字节指针+1,中文读两个字节指针+2
不用想太复杂
参考:https://bbs.eeworld.com.cn/thread-445017-1-1.html
此帖出自stm32/stm8论坛
 
 
 

回复

379

帖子

3

TA的资源

一粒金砂(高级)

11
 
yl20084784 发表于 2015-3-16 23:42
那你的意思是说,比如字母a ,它就内码就大概是 0x**+0X**,但是我通过发现,MDK下面,字符串“a”就是对应到ASK码的值...
那我们要显示“a和汉字”这个字符串的话,如果按a一个char来定位的话,后面的汉字就是乱码,按两个char也是乱码。。。

汉字的最高位是1,2个字节,ASCII是0,1个字节,由此不是很好判断?比如“A":0X41,"a":0x61






此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表