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
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top