IIC通信 中 字符传送函数 if((c<<BitCnt)&0x80)SDA=1; //判断发送位...
发布网友
发布时间:2024-12-31 02:34
我来回答
共3个回答
热心网友
时间:2024-12-31 05:08
这句话是这样的:
C为你要写的数,bitcnt是一个变量,用它来表示一个字节8位(BitCnt<8即0到7共8位),C左移bitcnt(c<<BitCnt)
if((c<<BitCnt)&0x80)SDA=1;else SDA=0; 的意思呢,
if((c<<BitCnt)&0x80)这个是判断C的最高位是否为1,如果为1,则把SDA数据线拉高,反之,则把SDA数据线拉低.
假如你要写的数为0X01;那么在程序8次时,会把SDA拉高.前面7次SDA都是拉低.
0X01左移7位等于0X80,0X80&0X80=1000,0000&1000,0000=1;if(1)为真,所以执行SDA=1
热心网友
时间:2024-12-31 04:59
154
热心网友
时间:2024-12-31 05:04
asd