不管在主函数还是在自己写的功能函数中,定义函数内部变量时,必须在函数一开始就定义,不能在函数语句中间定义!
如下:正确定义方式
bit I2C_RecvACK()
{
bit ack;
P3 = I2C_PORT_INPUT; //设置SDA为输入模式
i2c_set_sda(1); // 主机释放SDA线,为读响应位做准备
i2c_set_scl(0);
i2c_set_scl(0);
ack = SDA; // 接收从机的ACK信号
i2c_set_scl(0);
i2c_set_scl(1); // 上升沿读取ACK信号
i2c_set_scl(1);
i2c_set_scl(0); // 读取完毕
return ack;
}
错误定义方式:
bit I2C_RecvACK()
{
P3 = I2C_PORT_INPUT; //设置SDA为输入模式
bit ack;
i2c_set_sda(1); // 主机释放SDA线,为读响应位做准备
i2c_set_scl(0);
i2c_set_scl(0);
ack = SDA; // 接收从机的ACK信号
i2c_set_scl(0);
i2c_set_scl(1); // 上升沿读取ACK信号
i2c_set_scl(1);
i2c_set_scl(0); // 读取完毕
return ack;
}
错误定义方式会报错: