NewNew 发表于 2009-9-14 20:48:18

如何写I2C的应答信号!

马老师好!各位好!
如题说描述,我写的应答信号怎么有6次应答正确后在第7次就死在while循环,谢谢!
void I2C_receive_ack()
{
    SCL_PORT=0;          //SCL LOW
    delay_nop(5);
    SDA_DDR=0;            //SDA line is input   
    SDA_PORT=1;            //上拉
    delay_nop(5);
    SCL_PORT=1;            //SCL is high
    delay_nop(50);
    while(SDA_PIN);    //read ack
    SDA_DDR=1;         //SDA line is output
    SCL_PORT=0;       //SCL High
    delay_nop(5);
}

ljy0421 发表于 2009-9-14 20:52:05

SCL_PORT=1;            //SCL is high
    delay_nop(50);
    while(SDA_PIN);    //read ack

_______________________________________

改为

   SCL_PORT=1;            //SCL is high
    delay_nop(5);
    while(SDA_PIN);    //read ack

试试 看

另外请务重复发帖子

ljy0421 发表于 2009-9-14 21:08:51

唉。。。。。。。。。。。。。。

NewNew 发表于 2009-9-14 23:24:12

我试过,不行,你的意思是防止超时

machao 发表于 2009-9-15 02:30:48

《AVR单片机嵌入式系统原理与应用实践》一书中有几个不同方式的I2C例子供参考。

NewNew 发表于 2009-9-15 12:33:08

请问马老师您的软件I2C用的是内部上拉还是外部上拉
页: [1]
查看完整版本: 如何写I2C的应答信号!