标准I2C中,start后主机wait的是什么信号
发布网友
发布时间:2023-01-05 16:40
我来回答
共1个回答
热心网友
时间:2023-11-07 06:37
I2C总线协议有固定的时序,不遵守这个时序,就可能造成通信失败。
发送启动信号S在同步时钟线SCL为高电平时,数据线出现的由高到低的下降沿。
起始信号保持时间,最小值为4μS(不同通信速率时间略有不同),在这个信号过后才可以产生第一个同步信号。
所以,wait不是等待从机的什么响应,只是启动信号后的一个延迟。追问4us是在start之前需要保持,但是我执行Start();后,其实SCL和SDA都已经拉低了,所以wait应该不是你说的延迟吧
标准I2C里面每发送一个数据都需要wait()一下,
wait具体是{while(!(TWCR&(1<<TWINT)));}
我觉得是在等待一个中断,但是我用单片机作为分机测试过,没测出有什么动作