标题: [求助]IIC读字节代码程序 [打印本页]

作者: nt06    时间: 2012-7-18 17:10
标题: [求助]IIC读字节代码程序
uchar read_byte() { uchar i,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); k=(k<<1)|sda; scl=0; delay(); } return k; } sda 被拉为1了 K左移 结果K是不是全是FF 这有在读数据吗? 无法理解 求高手指点
作者: 青苹果    时间: 2012-7-19 08:55

SDA=1;应该是让SDA口做为输出吧,后面读取SDA的时候,就是SDA IO口的状态了,不会一直是1的


作者: ahshmj    时间: 2012-7-26 19:34

由于51单片机是准双向I/O,有读锁存器和读口线(引脚)之分,读口线之前必须先置I/O锁存器为1,读口线才能有正确结果。所以SDA=1是必须的。

 

这正是许多初学者不容易理解并容易出错的地方。而且出错的原因还不容易分析。

 

 

[此贴子已经被作者于2012-7-26 19:34:43编辑过]





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1