打印

求教一个关于PIC单片机的奇怪的编译错误

[复制链接]
7173|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zxb1717|  楼主 | 2008-12-23 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是PIC16F727单片机,编译时会出现以下的一个错误,不知道哪位大虾以前也遇到过类似错误,请指教一下:

Build D:sourceDEBUGc_touch for device 16F727
Using driver C:Program FilesHI-TECH SoftwarePICCstd9.60inpicc.exe

Executing: "C:Program FilesHI-TECH SoftwarePICCstd9.60inpicc.exe" -C D:sourceDEBUGmain_16F727.c -q --chip=16F727 -P --opt=default -g --asmlist "--errformat=Error   [%n] %f; %l.%c %s" "--msgformat=Advisory[%n] %s" "--warnformat=Warning [%n] %f; %l.%c %s" 
Warning [361] D:sourceDEBUGmain_16F727.c; 102.1 function declared implicit int
Error   [202] D:sourceDEBUGmain_16F727.c; 109.11 only lvalues may be assigned to or modified

********** Build failed! **************
沙发
machunshui| | 2008-12-23 17:08 | 只看该作者

only lvalues may be assigned to or modified

only lvalues may be assigned to or modified

直译:

只有左值可以被修改或者赋值,

楼主应该把编译指示的错误代码贴出来,才好让大家解决问题,

估计是给函数返回值或者常量赋值之类的情况。

使用特权

评论回复
板凳
zxb1717|  楼主 | 2008-12-23 18:01 | 只看该作者

谢谢machunshui

解决了!

使用特权

评论回复
地板
machunshui| | 2008-12-25 09:30 | 只看该作者

^_^,这个一般是给数组名赋值导致的结果

^_^,这个一般是给数组名赋值导致的结果

使用特权

评论回复
5
lyuwjq| | 2013-8-23 22:18 | 只看该作者
我也遇到类似的问题,但是不是数组,而是头文件中预定义的位

/*串口发送字节函数*/
void UartSendByte(unsigned char channel,unsigned char byte)
{  
     unsigned int t=0;
     if(channel==0)
     {
         TXREG=byte;  
         while (!TRMT_bit){t++;if(t>65534)break;}//等待发送完成
         TRMT_bit=0;


错误在最后一行,Error   [202] E:\Microchip\Projects\PIC-823\function.c; 121.12 only lvalues may be assigned to or

头文件中这样:
extern volatile bit _DEPRECATED         TRMT                @ (((unsigned) &TXSTA1)*8) + 1;
#define                                 TRMT_bit            TXSTA1, 1

源程序是使用的TRMT,编译提示  variable "TRMT" is deprecated 在此修改了。

求教大神解答。谢谢

使用特权

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

本版积分规则

31

主题

231

帖子

1

粉丝