OpenEdv-开源电子网

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

关于MDK无法将汉字转化成汉字内码的问题

[复制链接]
回帖奖励 1 金钱 回复本帖可获得 1 金钱奖励! 每人限 1 次

1

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-12-3
在线时间
5 小时
发表于 2019-12-3 22:18:07 | 显示全部楼层 |阅读模式
各位大佬,你们好,最近在学习汉字显示试验,遇到了问题,需要大佬们搭把手啊
是这样的,首先将编码方式设置成 Chinese GB2313  然后编译显示错误
main函数:
int main(void)
{                                                

  TFT_FSMC_GPIO();
  TFT_FSMC_Init();
  TFT_Init();
  GPIO_SetBits(GPIOB, GPIO_Pin_0);
  write_hz(100,100,16,"啊");          此处是26行
  while(1);
}

然后编译
..\HARDWARE\HZ\hz.h(9): warning:  #1-D: last line of file ends without a newline
  void Get_HzMat(uint8_t *code,unsigned char *mat,u8 size);
main.c(26): error:  #8: missing closing quote
    write_hz(100,100,16,"鍟?);
main.c(27): error:  #18: expected a ")"
        while(1);
main.c(28): warning:  #1-D: last line of file ends without a newline
  }
main.c: 2 warnings, 2 errors
"main.c" - 2 Error(s), 2 Warning(s).


然后就上网查找资料,就有网友提供了两种解决方案,主要是在魔术棒-------C/C++ ------MIsc Controls 添加--locale=english或者--no-multibyte-chars
试了下,两种方式编译都可以成功通过。于是就选择添加了--locale=english进行下一步测试。

然后就是这个函数
write_hz(100,100,16,"啊");
将汉字 “啊”  传到下面的函数
uint8_t write_hz(uint16_t x,uint16_t y,uint8_t size,uint8_t *hz)  //size为电脑端字体大小
{
        uint8_t i,j,x1,k,y0;
        uint32_t temp,Hp,sizenumber;
        uint32_t offsize;
        uint8_t GBKH,GBKL;
        uint8_t BUFF[32]={0};
        k=0;
        GBKH=*hz;
        GBKL=*(++hz);
      。。。。。
}
过debug发现此处  GBKH=0XE5  GBkL=0X95      然而  汉字‘啊’的内码是  GBKH=0XB0  GBkL=0XA1    但是汉字'啊'的uft_8码是E5958A
也就时说MDK在已经将编码方式设置为GB2312的情况下,还是默认将汉字编码成UFT_8的格式。

所以问题就来了,我讲原子的程序下载到单板里就一切现实正常,而我的确不行(程序没有问题,我直接设置GBKH=0XB0  GBkL=0XA1,屏幕上可以正常现实“”“啊” )
大佬们,有没有知道为什么的,白色不得姐啊
网上看了很多答案,有说MDK5.14(战舰板提供的版本)不支持汉字编码的,有的说要将程序先搞成GBK编码的等,但是为啥原子的程序可以呢???

.jpg

.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-12-3
在线时间
5 小时
 楼主| 发表于 2019-12-4 16:29:31 来自手机 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 20:51

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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