IIC协议规则,当主机作为接纳设备时,主机对最终一个字节不应对,以向发送设备(从设备)标识数据传送完毕。这是由于每次传输都应得到应对信号后再进行下一个字节传送。假如此刻接纳机应对了,那它就接纳的不是最终一个字节了。假如是最终一个字节,第9个时钟周期发送的对错应对信号(此刻发送的不是应对信号就对错应对信号),最终发送中止信号。
并非每传输8位数据之后,都会有ACK信号,有以下3中破例
- 当从机不能呼应从机地址时(例如它正忙于其他事而无法呼应IIC总线的操作,或许这个地址没有对应的从机),在第9个SCL周期内SDA线没有拉低,即没有ACK信号。这时,主机宣布一个P信号停止传输或许从头宣布一个S信号开端新的传输。
- 假如从机接纳器在传输过程中不能接纳更多的数据时,它不会宣布ACK信号。这样,主机就可以意识到这点,然后宣布一个P信号停止传输或许从头宣布一个S信号开端新的传输。
- 主机接纳器在接纳到最终一个字节后,也不会宣布ACK信号。所以,从机发送器开释SDA线,以答应主机宣布P信号完毕传输。