51单片机I2C总线读一个字节if(SDA==1)retc=retc+1;是什么意思?

2024-07-07 04:03:39
推荐回答(3个)
回答1:

retc=0; //变量 retc 归零

retc=retc<<1; // 变量向左移位

if(SDA==1)retc=retc+1; // 这句话,其实就是接收一个位,因为上一句向左移位了,所以这句话就要接收下一位了,向左移位,最低位为 0,如果接收管脚为 0,那么就是0,如果为1,那银乎么rec变量应该最低位锋唯悉变为1,程序里山樱 +1,其实就是变最低为 1,以完成数据位的正确接收

回答2:

连续读取8位数据位,从最高位开始读取,每次读取一位左移一位(retc=retc<<1;),如果SDA为高电平if(SDA==1),retc=retc+1表示该位为高喊姿电平的意弯嫌思,否埋渗手则就是低电平,也就是0,。

回答3:

retc=0;
//变量
retc
归零
retc=retc<<1;
//
变量向左移位基袭
if(SDA==1)retc=retc+1;
//
这句话,其实就是接收一个位,因为上一句向左移位了,所以这句话就要接收下一位了,向左移位,最低位为
0,如轮锋冲果接收管脚为
0,那么就是0,如果为1,那么腊歼rec变量应该最低位变为1,程序里
+1,其实就是变最低为
1,以完成数据位的正确接收