This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
你好,
ACK表示从机的I2C模块接收到了主机发来的数据,主机可以依此判断从机是否接收正确。但是主机下面的数据发不发送都是主机决定的,即使受到了NAK,主机想继续发送数据也可以。
虽然理论上是这样,但是如果适用的I2C的硬件模块,由于发送的数据先写入TXBUFF,所以如果主机没有接受到SLAVE发送的ACK信号,主机不会把TXBUFF的数据放入I2C的FIFO.也就不会产生TXBUFF为空的中断标志,要手动去填。