求高人帮我看看iic的问题,谢谢!

2019-03-24 19:33发布

最近刚接触IIC协议,这是个模拟协议,我在网上看了个程序段,有点不太明白。iic协议说主器件发送 第一个字节后,要等待从器件应答,然后再进行第二个字节数据发送,但是这个程序段里面看不出来, 为什么不查询呢? 。 。 。 /**************************************
接收应答信号
**************************************/
bit AT24C04_RecvACK()
{
    SCL = 1;                    //拉高时钟线
    Delay5us();                 //延时
    CY = SDA;                   //读应答信号                SCL = 0;                    //拉低时钟线
    Delay5us();                 //延时     return CY;                  //此处返回值到cy,可以明白。但是返回的值怎么判别从器件应答了呢?
} /**************************************
向IIC总线发送一个字节数据
**************************************/
void AT24C04_SendByte(BYTE dat)    //dat=0xa0=1010 0000
{
    BYTE i;     for (i=0; i<8; i++)         //8位计数器
    {
        dat <<= 1;              //移出数据的最高位
        SDA = CY;               //送数据口          CY为进位标志,0X0A左移时,产生进位CY=1,不产生进位CY为0
        SCL = 1;                //拉高时钟线
        Delay5us();             //延时
        SCL = 0;                //拉低时钟线
        Delay5us();             //延时
    }
    AT24C04_RecvACK();     
} 。 。 。
  此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
15075039ZQ
1楼-- · 2019-03-24 21:36
检测SDA电平
djdhn
2楼-- · 2019-03-25 02:56
 精彩回答 2  元偷偷看……
孤獨の快樂
3楼-- · 2019-03-25 07:18
CY = SDA;                   //读应答信号
abo6016
4楼-- · 2019-03-25 12:35
uchar ack(void)                                         //应答,一般接收器件要产生应答       
{
        scl=0;
        sda=1;
        scl=1;
        delay();
        F0=sda;
        scl=0;
        if(F0)          return 0;
        else return   1;
}
这样是否明白,数据线被拉低表示正常应答
小小白
5楼-- · 2019-03-25 13:13
这个只是一个读应答信号的程序不涉及判读至于判断是在后面的程序里面做的
bit AT24C04_RecvACK()
{
    SCL = 1;                    //拉高时钟线
    Delay5us();                 //延时
    CY = SDA;                   //读应答信号           

    SCL = 0;                    //拉低时钟线
    Delay5us();                 //延时

    return CY;                  //此处返回值到cy,可以明白。但是返回的值怎么判别从器件应答了呢?
}
abo6016
6楼-- · 2019-03-25 14:55
额。。难道是我的表述有问题??= =
他的问题是“返回的值怎么判别从器件应答了呢?”
我的回答是“数据线被拉低表示正常应答”
我觉得我的表述没有问题啊。。。。

一周热门 更多>