Forum: Mikrocontroller und Digitale Elektronik USART mehr als vier Zeichen auf einmal empfangen?!


von Chris Lambert (Gast)


Lesenswert?

Hallo,

nach langen Probieren, habe ich es endlic geschaft mein LCD Display
anzusteuren, nun bin ich aber vor folgenden Problem:

Ich möchte gerne ganze Wörter via USART vom PC an den uC senden, dieser
soll dann diese Wörter auf dem LCD ausgeben.

Das ganze klappt wunderbar bei 4 Zeichen, sende ich nun mehr als 4
Zeichen, z.B. Hallo via USART an den uC, so gibt dieser mir nur ein
HALO via USART zurück, ebenso wird auf dem LCD auch nur HALO
ausgegeben?! Wie schaffe ich es mehr als 4 Zeichen einzulesen und zu
verarbeiten, kann es sein dass der interne Buffer vollläuft? Wenn ja
wie behebe ich diese Problem?

Außerdem hätte ich eine Frage bzgl. zu folgenden C-Syntax:
Wenn ich einen String mit 'string' übertrage bekomme ich nix
gescheides, wenn ich aber mit "string" übertrage, wird der String
korrekt angezeigt. Was sagt das Zeichen ' aus???


Danke im voraus....

von Marcus (Gast)


Lesenswert?

bei "string" wird automatisch ein endcharacter "\" zum schluss des
strings eingefügt. mit '...' kannst du glaube einzelne Zeichen, ohne
endcharacter zuweisen...

zu der anderen usart geschichte gabs glaube ein paar threads, wo er
bestimmte, letzte zeichen "verschluckt" hat... musst mal suchen...

von johnny.m (Gast)


Lesenswert?

In '' werden einzelne ASCII-Zeichen eingeschlossen, in "" ein String
mit Nullterminator (der also immer ein Byte länger ist, als die Anzahl
der übergebenen Zeichen!).

von Rahul (Gast)


Lesenswert?

Wenn er "HALO" statt "HALLO" ausgibt, liegt es wohl kaum am
String-Endezeichen. Da ist der Hund im Programm selbst begraben.
Ringpuffer hilft.
Der interne Puffer hat eine Tiefe von ganzen ZWEI Bytes (beim AVR).
Liegt wohl am Programm...(ich widerhole mich...)

von Marcus (Gast)


Lesenswert?

@Rahul:
ging ja auch um diese frage von ihm:
"Außerdem hätte ich eine Frage bzgl. zu folgenden C-Syntax:
Wenn ich einen String mit 'string' übertrage bekomme ich nix
gescheides, wenn ich aber mit "string" übertrage, wird der String
korrekt angezeigt. Was sagt das Zeichen ' aus???"

was mich irritiert ist, dass er anscheinend ein zeichen aus der mitte
rauslässt und nicht zB das letzte, oder das erste wegfällt...

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mit 'string' kann man in C gar nichts übertragen, der Compiler sollte
beim Versuch, sowas zu übersetzen, eine Fehlermeldung ausgeben.

Wie wär's mit etwas Quelltext?

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
Noch kein Account? Hier anmelden.