问题遇到的现象和发生背景
TM1650 移植到51上面的错误提示
问题相关代码,请勿粘贴截图
unsigned char TM1650_Wait_Ack(void) //等待应答信号
{
unsigned char ucErrTime = 0; //定义一个字节变量ucErrTime
SDA_IN(); //配置数据引脚为输入模式
TM1650_SDA_H; Delay_us(1); //数据信号置高,延迟1us
TM1650_SCL_H; Delay_us(1); //时钟信号为高,延迟1us
while(READ_SDA) //读取”SDA8脚状态“如果为真
{
ucErrTime++; // ucErrTime变量自加1
if(ucErrTime>250) // 等待SDA8脚变低, 返回1
{
TM1650_Stop(); //结束信号函数
return 1; //返回1
}
}
TM1650_SCL_L; //如果”SDA8脚状态“为假,时钟拉低
return 0; //返回0
}
运行结果及报错内容
SOURCE\tm1650.c(81): error C141: syntax error near ';', expected ','
SOURCE\tm1650.c(81): error C141: syntax error near ')', expected '__asm'
我的解答思路和尝试过的方法
编译一直在“while(READ_SDA) ”这一行提示两个错误, 将 READ_SDA替换成 1, 就不显示告警了, READ_SDA 的出处是宏定义:#define READ_SDA P1^4;
我想要达到的结果
找不到问题在哪里,帮忙找到问题,去除告警。