打印
[开发工具]

PICC18编译"汉字"报错 (已解决)

[复制链接]
2154|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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的,在直接写汉字的情况下,先红黑全编译报错,再黑红编译成功,且代码正常显示,谢谢!

使用特权

评论回复
5
wuhenyouyu| | 2016-4-24 09:18 | 只看该作者
为啥不用MCC18编译器?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

29

主题

1111

帖子

8

粉丝