如何写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);
} 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
试试 看
另外请务重复发帖子 唉。。。。。。。。。。。。。。 我试过,不行,你的意思是防止超时 《AVR单片机嵌入式系统原理与应用实践》一书中有几个不同方式的I2C例子供参考。 请问马老师您的软件I2C用的是内部上拉还是外部上拉
页:
[1]