Forum: PC-Programmierung ASCII NUL über RS232 senden


von Dennis (Gast)


Lesenswert?

Hallo zusammen!!

Ich bin auf ein Problem gestoßen dass ich nicht lösen kann oder ich
verstehe es nicht richtig:
Ich möchte aus meinem PC-Programm (geschrieben in C) über die RS232
einen String mit 10 Bytes an einen Mikrocontroller senden. Klappt auch
wunderbar bis jetzt. Nun möchte ich in diesem String (an beliebiger
Stelle) ein Byte senden, in dem alle Bits "0" sind, also im prinzip
das ASCII-Zeichen "NUL". Das klappt leider nicht so recht...
Frage: wie kann ich das Zeichen NUL in C darstellen?
Wie bekomme ich z.B. in den  string[20] an den Index [4] das zeichen
NUL?

ich wäre um jeden Tip sehr dankbar!!!

Grüße Dennis.

von Dirk (Gast)


Lesenswert?

Soll es sich um das Zeichen für Null (Ziffer Null - 48dezimal bzw.
30hex) oder die logische Null (0hex) sein?

Im letzen Fall wird das ein Problem mit deinem String. In C wird der
String mit logische Null abgeschlossen und damit das Ende
gekennzeichnet.
Möglichkeit wäre ein Array statt String verwenden. Dem Array dann
einfach Null zuweisen.

z.B.  Array[4] = 0x00;  oder Array[4] = '\0';

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Du musst dir nur vorher die Länge des Strings (implementiert durch
char[]) merken, dann kannst du beliebige zeichen auf NUL setzten (mit
s[20] = 0), und nachher senden.
Übergeben tust du als Länge die, die du dir vorher gespeichert hast
(z.b mit strlen oder sonst wie falls errechenbar)

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.