本帖最后由 qwe70007 于 2011-8-9 20:53 编辑
2# 老鱼探戈
再请问下这两个总线释放都是拉高么?
为什么我的24c02读之后再释放SCL线时就会出错呢?
uchar read_byte() //读一个字节
{
uchar i,dat;
SCL=0;
SDA = 1;
for(i=0;i<8;i++)
{
read_data <<= 1;
SCL=1;
if(SDA)
read_data |= 0x01;
SCL=0;
}
SDA=1;
SCL=1;
return dat;
}
若无最后的SCL=1,或写成SCL=0则正常。(延时在此删掉,和延时无关系)
请教一下这是为什么呢?能帮忙解释下么,谢谢!
|