请高手看下24C**的这句!

[复制链接]
2416|8
 楼主| zhizuzhe 发表于 2007-4-10 22:12 | 显示全部楼层 |阅读模式
void ACK()
{
  SDA=0;
  SCL=1;
  _nop_(); _nop_();
  SCL=0;
  SDA=1;
}
应答信号最后为什么要SDA=1啊??
我把SDA=1去掉结果就不对了。。。
ayb_ice 发表于 2007-4-11 07:46 | 显示全部楼层

为下次做准备,设为0也可以,但其它程序要改...

xzhenggen 发表于 2007-4-11 07:57 | 显示全部楼层

为下次做读取做准备

zgl7903 发表于 2007-4-11 08:42 | 显示全部楼层

需要符合IIC总线规范,开漏方式

huangqi412 发表于 2007-4-11 10:26 | 显示全部楼层

平时让sda线上拉

 楼主| zhizuzhe 发表于 2007-4-11 12:33 | 显示全部楼层

:)

开始读取数据之前SDA必须为1吗?
NE5532 发表于 2007-4-11 13:11 | 显示全部楼层

用的哪种单片机?问题不在这个函数本身

在于和其他函数间的接口上。
 楼主| zhizuzhe 发表于 2007-4-11 17:32 | 显示全部楼层

和ACK()函数接口的应该就一个读取字节函数了

因为连续读的时候才用到应答信号。
uchar ReceiveByte()
{
   uchar i;
   for(i=0;i<8;i++)
   {
      SCL=0;
      RByte=(RByte<<1)|SDA;
      SCL=1;
   }
   SCL=0;
   return(RByte);
}
 楼主| zhizuzhe 发表于 2007-4-15 19:20 | 显示全部楼层

:)

顶起来,想知道答案
您需要登录后才可以回帖 登录 | 注册

本版积分规则

48

主题

215

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部