AnsweredAssumed Answered

the way in which I2C registers work

Question asked by M. Jeong on Oct 21, 2016
Latest reply on Oct 21, 2016 by ColdWeather
Could anyone please explain how the STM32 determines the values of TxE, ADDR registers? I'm learning I2C controller of STM32F429 and HAL library. But I couldn't understand the descriptions in reference manual.

1. TxE is 1 when the DR register is empty and 0 when the DR register is not empty. But how does the CPU know if the register is empty? Does it read values directly? 

2. In I2C master mode ADDR is 1 when end of address is sent. But here I'm also confused. Does it mean that slave has sent ACK? 

Thank you