[开发工具] PICC18编译"汉字"报错 (已解决)

[复制链接]
 楼主| ZG11211 发表于 2015-1-6 12:24 | 显示全部楼层 |阅读模式
本帖最后由 ZG11211 于 2015-1-10 21:14 编辑

之前在用PIC16单片机驱动带字库的液晶时,显示内容都是直接输入("汉字")的,编译时只是出现警告Warning [228]
目前我用PIC18单片机执行相同的操作时,编译器报错,提示Error   [228],目前用的PICC18是9.66版,不知道大家是否遇到过,有什么办法?
SdCmd(0x80);//第一行
hzkdis("汉字");
Light_David 发表于 2015-1-7 00:30 | 显示全部楼层
:lol PICC不支持“汉字”
 楼主| ZG11211 发表于 2015-1-10 21:13 | 显示全部楼层
进过多天搜索和求知,终于在骨骼搜索里找到了答案,转自《志在四方的博客》,特此转帖并结贴!

picc 不支持中文字符串的解决方法
MPLAB是8.60版
PICC的版本是HI-TECH PICC-18 VER9.66

使用该环境时,定义一个字符串,比如:
char name[]="张三";
进行编译时会报错:

Error   [228] F:\PROJECTS\test\source\main.c; 265.13 illegal character (0xD5)
Error   [228] F:\PROJECTS\test\source\main.c; 265.13 illegal character (0xC5)
大体意思是字符串中包含了非法的字符,并且同时指出了前两个是0xd5和0xc5,经查证,这两个字符就是汉字“张”的内码(ASCII码)。
出现这个问题,可以有两种解决办法:
方法之一是可以不用管它,编译两遍即可,第一遍使用全编译,全编译肯定会报错,第二遍不要使用全编译,就可以通过了,程序运行正常。
方法之二是在字符串中使用转义字符,即重新将以上的语句改为:
char name[]="\xd5\xc5\xc8\xfd";  //张三
这样改过之后就不会报错了,但是看上去就不直观了,为了可读性,我们可以在后面加上注释。

我最后试验了,不用红黑全编译图标,改用黑红编译图标就编译通过了
xm_smallp 发表于 2016-4-23 14:44 | 显示全部楼层
ZG11211 发表于 2015-1-10 21:13
进过多天搜索和求知,终于在骨骼搜索里找到了答案,转自《志在四方的博客》,特此转帖并结贴!

picc 不支 ...

谢谢分享,我使用PIC18F的,在直接写汉字的情况下,先红黑全编译报错,再黑红编译成功,且代码正常显示,谢谢!
wuhenyouyu 发表于 2016-4-24 09:18 来自手机 | 显示全部楼层
为啥不用MCC18编译器?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:工作不养闲人,团队不养懒人。赚不到钱赚知识,赚不到知识赚经历,赚不到经历赚阅历,让人迷茫的原因只有一个,那就是本该拼搏的年纪,却想得太多,做的太少!

31

主题

1118

帖子

8

粉丝
快速回复 在线客服 返回列表 返回顶部