OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7458|回复: 3

OLED显示汉字实验

[复制链接]

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
发表于 2017-11-27 18:15:23 | 显示全部楼层 |阅读模式
10金钱
我现在做这个汉字显示的东西,也在网上查了些关于编码的资料。理解就是我们使用的汉字编码一般是GBK,所以要显示汉字的话要得到GBK的液晶点阵字库,这部分没有问题。但是KEIL MDK编译器使用的是Unicode编码,而Unicode编码是不兼容GBK的,所以我们在程序中写的中文字符串并不能像ASCII这样的字符一样直接用来查找GKB点阵数据的,必须通过程序将Unicode表示的汉字转换到GBK才可以得到对应汉字点阵在字库中的偏移位置。问题是,我并没有在原子哥的程序中看到Unicode到GBK的转换这一步骤呀,程序中   void Get_HzMat(unsigned char *code,unsigned char *mat,u8 size)  这个函数是直接将字符按照GBK编码处理了    ,是我什么地方理解的有问题吗?         问题.PNG

最佳答案

查看完整内容[请看2#楼]

MDK编译的是代码,和MDK本身 用什么编码,关系不大。何况MDK,我们一般设置的都是GB2312,属于GBK的子集。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165369
金钱
165369
注册时间
2010-12-1
在线时间
2110 小时
发表于 2017-11-27 18:15:24 | 显示全部楼层
MDK编译的是代码,和MDK本身 用什么编码,关系不大。何况MDK,我们一般设置的都是GB2312,属于GBK的子集。
回复

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2017-11-28 09:17:42 | 显示全部楼层
正点原子 发表于 2017-11-27 18:15
MDK编译的是代码,和MDK本身 用什么编码,关系不大。何况MDK,我们一般设置的都是GB2312,属于GBK的子集。

我们平时MDK设置的2312,我的理解只是代码文件内容的解码方式,如果我在程序里面定义了unsigned char *ptr="正点原子",MDK会按照GB2312去编码这个字符串吗?还是说按照Unicode的方式?
回复

使用道具 举报

37

主题

595

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1572
金钱
1572
注册时间
2017-7-17
在线时间
308 小时
 楼主| 发表于 2017-11-30 10:49:27 | 显示全部楼层
我后来用编译器试了一下,在MDK中把编码设置为GB2312,可以在程序里面使用中文字符串变量,编译器是按照设置的2312编码方式进行编译的,中文可以像ASCII字符那样做运算。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-19 11:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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