Backslash '\' über RS232 schreiben?

Gast #548221
Lesenswert?

Hallo freunde!

Bin grad am programmieren von meinem kleinen übungsboard und will nun 
über die RS232 schnittstelle von meinem µC aus den String

> char string[]="abc\0\r";

schicken. aber aus mir unerfindlichen gründen ist der Backslash am 
anderen Ende der übertragung nicht mehr der backslash der er einmal war!

muss ich an dieser stelle nun mit dem ASCII code arbeiten, oder gibts da 
noch eine andere möglichkeit?

danke & mfg, wolfi
Gast #548222
Lesenswert?

> schicken. aber aus mir unerfindlichen gründen ist der Backslash am
> anderen Ende der übertragung nicht mehr der backslash der er einmal war!

> muss ich an dieser stelle nun mit dem ASCII code arbeiten, oder gibts da
> noch eine andere möglichkeit?

Bist du noch C-Anfänger?

probiers doch mal mit

> char string[]="abc\\0\\r";
Gast #548228
Lesenswert?

Richtig, bin anfänger (-> übungsboard ;-) )!

Das '\r' quasi der "Enter"-button auf der tastatur ist, hab ich 
verstanden nur beim backslash war ich mir nicht sicher!

Heißt das jetzt das ich jedes sonderzeichen darstellen kann, wenn ich 
einfach nur ein '\'-Zeichen davor mache?

Wie funktioniert das dann wenn ich '"' (Hochkomma) über rs232 schreiben 
will? da regt sich ja leider der compiler auf...!
Gast #548239
Lesenswert?

danke für die info!

jetzt hätt ich im anschluss gleich noch eine frage:

wie funktioniert das dann bei tastenkombinationen wie zB:

> Strg+Z

? Ist da die einzige chance diese tastenkombi zu erreichen, wenn ich mit 
ascii  code arbeite?

Strg+Z wäre dann ja "0x1A", oder?
#548260
Lesenswert?

Wolfgang Supper wrote:
> danke vielmals für die geduld auch mit anfänger wie mir ;-)!
>
> werds gleich ausprobieren!

mal sehen.
Normalerweise müsste jetzt noch eine Frage kommen :-)
Kann aber auch sein, dass du erst in den nächsten Tagen
drauf stösst. Das Problem ist so nicht ganz offensichtlich.

Gast #548284
Lesenswert?

kbuchegg wrote:
> Das Problem ist so nicht ganz offensichtlich.

ok, auch auf die gefahr hin, dass ich jetzt keine antwort darauf 
erhalten werde, aber mit welchen problemen könnte/müsste ich rechnen 
bzw. von welchen problemen im weiteren verlauf wird ausgegangen?
#548290
Lesenswert?

Die Frage muesste lauten:

Whoer weiss eigentlich \x wo die Hex Zahl aufhört
und wo es mit dem normalen Text wieder weitergeht?

Wenn ich einen Hex-Zahl 0x1A in den Text
"iiiAABjjjj" einbetten möchte und zwar genau zwischen
das letzte A und das erste B

  "iiiAA\x1ABjjjj"

dann interpretiert er anscheinend das B mit zur Hex Zahl dazu.

Die Lösung

  "iiiAA" "\x1A" "Bjjjj"

Der Compiler ist verpflichtet mehrere Strings die aufeinander-
folgen zu einem einzigen zusammen zu fassen. Zu diesem
Zeitpunkt (der Zusammenfassung) ist das \x1A aber bereits
bearbeitet worden und es kommt das gewünschte Ergebnis
zustande.
Gast #548309
Lesenswert?

ok... erscheint mir logisch!

hätte es aber dennoch mit zufall richtig gehabt, weil ich zuerst

> sendstr(stringBeliebig);

und dann erst:

> sendstr("\x1A");

über die rs232 schicke!

aber danke trotzdem für die auflösung, jetzt weiß ich fürs nächste mal 
bescheid!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren