标题: 求助!关于编译时报错的问题。 [打印本页]

作者: 黄煌皇    时间: 2016-12-22 16:25
标题: 求助!关于编译时报错的问题。
各位大神下午好,我们直接进入主题吧,等不及想知道答案了。如下图所示
这是一个简单的数码管静态显示代码,可是编译的时候出现如图所示的错误,自己也上网查了很长时间,可是都没有解决问题,望大神们帮忙看看到底是哪里出现了错误。谢谢啦!

作者: STC89C51    时间: 2016-12-22 17:57
数组名称与你的宏定义名称重复了,可以将数组名称换成其他的
作者: 黄煌皇    时间: 2016-12-22 18:32
STC89C51 发表于 2016-12-22 17:57
数组名称与你的宏定义名称重复了,可以将数组名称换成其他的

只是改数组名字就行了吗?其他的要不要改?我改了数组名,编译后出现以下错误提示:
请看,谢谢!我自己也去查查看是什么情况。

作者: mm29    时间: 2016-12-22 19:17
重负定义吧
作者: STC89C51    时间: 2016-12-22 20:46
黄煌皇 发表于 2016-12-22 18:32
只是改数组名字就行了吗?其他的要不要改?我改了数组名,编译后出现以下错误提示:
请看,谢谢!我自 ...

出现error C183: unmodifiable lvalue的错误,最后发现时存在一个数组是uchar code xx[5],后边把它用作接受串口的缓冲区,显示uchar code是不能改变的,是写在rom中的。应该改成uchar xx[5],这是写在ram中的原因:修改了不能改变的变量! 这是我在网上找的,你试试看。
作者: 黄煌皇    时间: 2016-12-22 21:17
STC89C51 发表于 2016-12-22 20:46
出现error C183: unmodifiable lvalue的错误,最后发现时存在一个数组是uchar code xx[5],后边把它用作接 ...

就是将这句  unsigned char code duanma[16]   改为unsigned char  duanma[16] 吗?我刚刚试了一下,结果又出现了一下编译错误,请看图:

作者: 黄煌皇    时间: 2016-12-22 21:17
mm29 发表于 2016-12-22 19:17
重负定义吧

那请问该怎么修改呢?谢谢!
作者: shouwangzhe    时间: 2016-12-22 21:59
重定义了P0
作者: GGSKY    时间: 2016-12-22 22:14
PO口定义那里有错误
作者: 治世逍遥    时间: 2016-12-22 22:21
GPIO_DIG=duanma[0];不就可以了吗。或者直接P0=duanma[0];有事没事搞这么重复做什么,又不是没符号可用了。
作者: 1575580013    时间: 2016-12-22 23:12
重复定义
作者: 沧浪    时间: 2016-12-22 23:34
既然你想操作端口,就应该将一个值赋端口啊?
作者: 黄煌皇    时间: 2016-12-23 10:17
治世逍遥 发表于 2016-12-22 22:21
GPIO_DIG=duanma[0];不就可以了吗。或者直接P0=duanma[0];有事没事搞这么重复做什么,又不是没符号可用了。

知道了,谢谢你,已经搞定了,定义弄乱了,我是个新手,感谢大神!
作者: 黄煌皇    时间: 2016-12-23 10:19
沧浪 发表于 2016-12-22 23:34
既然你想操作端口,就应该将一个值赋端口啊?

我就是想将数码管的断码赋值给P0,之后就是如何操作P0的过程中遇到了问题,是我的逻辑不对。不过现在已经搞定了,谢谢你
作者: 黄煌皇    时间: 2016-12-23 10:20
mm29 发表于 2016-12-22 19:17
重负定义吧

是的,是重复定义了,我自己都乱了
作者: 黄煌皇    时间: 2016-12-23 10:20
1575580013 发表于 2016-12-22 23:12
重复定义

是的,现在已经改过来了,继续学习
作者: 黄煌皇    时间: 2016-12-23 10:38
其实,就是我将P0口定义为 GPIO_DIG了,然后数组名字又是GPIO_DIG,所以重复定义了,现在搞明白了,感谢各位,谢谢!




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1