Hallo, ich würde gerne mit einem arduino per I2C ein struct senden. Die KOmmunikation steht und das senden eines einzelnen Bytes funktioniert auch einwandfrei. Wie aber kann ich ein ganzes Sruct senden? Es enthält 3 Variablen vom Typ uint32_t. Die Daten werden vom Slave gesendet. Das heißt ich fordere diese vom master aus mit der Funktion Wire.requestFrom(address, quantity) an. Leider bekomme ich sobald ich für quantity den Wert 2 für einen 16-Bit Integer angebe bekomme ich allerdings falsche werte. Für das genannte Besipiel mit dem struct ebenfalls. Hoffe jemand kann mir weiterhelfen, oder hat vllt sogar einen Beispielcode
versuchs mal mit byte senden von Adresse des struct bis struct ende sizeof und dort in einem Puffer der groß genug für das struct ist und diese Startadresse ist dann dein empfangenes struct, ich hoffe das im struct alle bytes hintereinander liegen, habe es aber nie geprüft, könnte man ja mal machen.
Nachtrag: Es macht keinen Sinn den Code geheim zu halten. Denn, geheim gehaltene Fehler sehen wir nicht.
Jannus schrieb: > ich würde gerne mit einem arduino per I2C ein struct senden. I2C kennt nur Bytes. Du wirst die Bytes, die die Daten deines structs enthalten, fein säuberlich nacheinander übertragen müssen und es ist dann das Problem des Empfängers, die eintreffenden Bytes wieder abzulegen und als struct zu interpretieren.
Die Arduino I2C Lib kann Daten Pakete senden. Es gibt da allerdings die ein oder andere Stolperfalle.
Danke für eure Antworten. Ich werde eure Vorschläe versuchen umzusetzen und werde die Lösung dann zeitnah hier Präsentieren
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.