Hello, I am considering implementing I2C Driver for an stm32 device using the interface defined by cmsis. One thing that has my attention however, is it seems a little constraining. I have worked with various devices that use I2C in the past and many of them require an I2C transaction in the following form:
START | ADDRESS(W) | REGISTER_ADDRESS | REP_START | ADDRESS(R/W) | DATA | STOP
When I read through some examples on how to use the driver it seems that Transmit and Receive are expected to do the following.
Transmit: START | ADDRESS(W) | DATA | STOP
Receive: START | ADDRESS(R) | DATA | STOP
Is there a standard way to generate I2C transactions that are slightly more complicated than Transmit and Receive?
Okay thanks, that makes sense. Not sure how i missed that hah