I'm currently working on a driver on an STM32F0 that joins the I2C bus as a slave device. Currently there is no mention in the reference manual on how to handle a Repeated Start Condition, does anyone know how to?

I am currently handling the I2C request in the AddressCallback and am able to send/recieve all the data but when I try to detect a Repeated Start using the NACK flag (From RM: The bit is set by software, cleared by hardware when the NACK is sent, or when a STOP condition or an Address Matched is received, or when PE=0.), the ADDR flag is never set meaning the ISR is never called again.


I finally got a response from ST. There is no reference to Repeated Start Condition in the F0 documentation nor the F0 HAL examples but there is an example in the L4 firmware packge:

In L4 Firmware repository, look under STM32Cube_FW_L4_V1.8.0\Projects\STM32L496ZG- Nucleo\Examples\I2C\I2C_TwoBoards_RestartComIT

The example shows how to perform a single I2C data buffer TX/RX in Interrupt Mode and with a Repeated Start condition.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.