syntax error; found ` ; ' expecting ` )' 和Error TCC: insufficient number of arguments to `IIC_RegRead'

做单片机开发时,出现标题所示很令我头疼的错误信息。

 

仔细检查,在分号前的括号是匹配的,函数IIC_RegRead的参数个数,怎么数都是正确的。

 

 

仔细分析调用了IIC_RegRead的几个语句,有的报错,有的不报错。

 

IIC_RegRead的函数原型如下

 

int IIC_RegRead(uchar slaveaddr,uchar regaddr)

 

正确的调用如下 :

 

IIC_RegRead(slaveaddr,XYZ_DATA_CFG_REG)&(~FS_MASK);

 

PS:全是大写的实参,是个宏定义,类似#defing XYZ_DATA_CFG_REG 0x03之类的。

 

报错的调用如下:

 

IIC_RegRead(mslaveaddr,0x03)&(~0x01);

 

怎么看都觉得这错误报的很搞怪啊。

 

后来,我把0x03,0x01之类的立即数,全改用宏。原以为就没有错误了。这次debug有点蒙猜的意味。具体原理,鬼知道。

再次错误。

 

后来发现,有这么一条语句#define mslaveaddr 0x1e;

所以凡是有mslaveaddr 的地方都报如标题所示错误……

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值