Ich hole mal wegen I2C etwas weiter aus, du sendest immer erst eine I2C Adresse in der im niederwertigsten Bit codiert ist ob man lesen oder schreiben will. Alles was danach kommt ist entsprechend der Doku zu interpretieren und wer Sendet ist durch das R/W Bit geklärt.
Deine Nachricht nach der Doku zu lesen sieht also folgendermaßen aus:
(MACK/MNACK Master, SACK/SNACK Slave)
(*1) Sollte nach I2C Spec immer ein NACK sein nach dem letzten Byte, der Chip erlaubt aber beides
Schreiben only: START -> Adresse + W -> SACK -> APReg -> SACK -> MSB -> SACK -> LSB -> SACK -> STOP
Lesen only: START -> Adresse + R -> SACK -> MSB -> MACK -> LSB -> MACK/MNACK(*1) -> STOP
Wobei eine vollständige Lesen Routine folgendermaßen aussieht:
Lesen mit APReg: START -> Adresse + W -> SACK -> APReg -> SACK -> STOP+START/RESTART -> Adresse + R -> siehe oben...
die Doku sagt, ein REgister weiderholt zu lesen geht indem man nur einmal das APReg schreibt und dann wiederholt ließt
schreiben braucht aber immer das APReg bei jedem Schreibvorgang
Lesezeichen