关于I2C总线读一个字节的问题 ,如何理解k=(k<<1)|SDA;这一句

ucharreadbyte(){unsignedchari,k;SCL=0;delay();SDA=1;for(i=0;i<8;i++){SCL=1;delay();k=... uchar readbyte()
{
unsigned char i,k;
SCL=0;
delay();
SDA=1;
for(i=0;i<8;i++)
{
SCL=1;
delay();
k=(k<<1)|SDA;
SCL=0;
delay();
}
delay();
return k;
}
展开
 我来答
wuying081
2012-05-27 · TA获得超过207个赞
知道答主
回答量:81
采纳率:0%
帮助的人:26.1万
展开全部
I2C读一个字节的时候是读SDA上的信号,只能一位一位的读,k=(k<<1)|SDA这样写还是不太好,有时候可能会出错,因为k是char类型,而sda上读的是0或者1,是bit类型,可以换一种写法,k=(k<<1)|SDA这样写的本意是将每次读的位保存到k临时变量中,先读取高位,每次保存到k的低位,读取下一位的时候,再将k左移就将之前读取的位都左移了一次。你可以试着每一步试着用一个数值试一下。这样你就话明白了。
z956495615
2012-05-30
知道答主
回答量:6
采纳率:0%
帮助的人:9475
展开全部
dsadsadassssssdsadsafsafas
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式