We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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?