Also there is another solution that may help you. Try to implement timeout detection by hardware. The SHFT2 flag from register I2Cx_SMB , indicate that the SDA is held low more than clock × LoValue / 512 .After detection you could implement the recovery procedure of the nine clock cycles . Please take a look at the reference manual chapter 31.3.9 I2C SMBus Control and Status register.
Dear 梁 卓夫,
Sorry for the late response.
Yes, the flags may overlap, when their conditions are met without interfering with each other. According to the KEA128 reference manual, In the case of the busy flag, it it will be set, after the start signal is detected. The SHTF2 flag, from the I2Cx_SMB register, will be set, after a timeout, with proper configuration.
Please remember that this information could be useful for other community users, so its recommended to post entirely in English.
Have a great day,
Diego
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!
- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.