This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Advice on implementing CMSIS I2C Driver for stm32

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?