Hallo, ich möchte 32bit Werte zwischen dem ATmega88 und dem Raspebrry Pi über den UART austauschen (in der Sprache C). Dazu habe ich grundsätzlich ein paar Fragen: Mit open() öffne ich eine Datei, aus welcher ich die empfangenen UART Nachrichten abfrage. Mit read() lesen ich eine bestimme Anzahl von Zeichen aus der Datei. - Werden die gelesenen Bytes aus der Datei gelöscht? - Wird die Datei immer größer wenn viele Daten eingehen und nicht abgerufen werden? Grenze? - Kann ich die Datei leeren? Ich habe das nämlich das Problem das am Pi zwar die Daten ankommen, aber als stream, d.h. ich kann keine klaren Nachrichten abgrenzen. Ist es deshalb sinnvoll innerhalb der Daten Start und End Zeichen zu definieren, sodass ich weiß, der dazwischenliegende Teil sind die Daten? Oder sollte ich lieber jedesmal alle Puffer leeren? Landen im dem File auch andere Nachrichten? Schicke ich vom µC 32 an den Pi und lese 32 Byte ein, tauchen Zeichen auf, welche ich nicht verschickt habe. Versteh den ganzen Zyklus im Pi anscheinend noch nicht. Bzw. was mit den Nachrichten vom µC im Pi passiert...
qwertz schrieb: > Mit open() öffne ich eine Datei, aus welcher ich die empfangenen UART du meinst bestimmt eine Device ( /dev/ttyS0 oder so )? > Werden die gelesenen Bytes aus der Datei gelöscht? wenn es ein device ist, ja - Wird die Datei immer größer wenn viele Daten eingehen und nicht abgerufen werden? Grenze? es wird keine Datei sein, damit hat es auch keine größe. Es gibt intern eine Puffer dieser kann überlaufen - Kann ich die Datei leeren? ja, ich glaube mit fflush > Ich habe das nämlich das Problem das am Pi zwar die Daten ankommen, aber > als stream, d.h. ich kann keine klaren Nachrichten abgrenzen. Serial ist nun einnmal ein stream und genauso kommt es an. > Ist es deshalb sinnvoll innerhalb der Daten Start und End Zeichen zu > definieren, sodass ich weiß, der dazwischenliegende Teil sind die Daten? ja, das nennt sich Protokoll und man braucht es bei jeder Datenübertragung > Landen im dem File auch andere Nachrichten? eigentlich nicht > Schicke ich vom µC 32 an den Pi und lese 32 Byte ein, tauchen Zeichen > auf, welche ich nicht verschickt habe. dann hast du keine Saubere Verbindung. Vermutlich ein Hardware Problem. > Versteh den ganzen Zyklus im Pi anscheinend noch nicht. Bzw. was mit den > Nachrichten vom µC im Pi passiert... das kommt auch dein Programm an, was mit den Daten gemacht wird
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.