Forum: Mikrocontroller und Digitale Elektronik RS232 Schnittstellen ?


von Michael L. (nightflyer88)



Lesenswert?

Hallo Zusammen

Ich habe mir ein kleines Diagnose Tool für RS232 Programmiert. Dabei 
kann man z.B. ein einzelnes Byte senden, und natürlich auch jedes 
einzelne Byte das empfangen wird, betrachten.

Nun habe ich ein komisches Problem:
Wenn ich die Tx und Rx Leitung miteinander verbinde, also die gesendeten 
Daten direkt wieder empfangen, und nun 1 byte sende, kommen jedoch 2 
byte an ?!? Ist der gesendete Wert kleiner als 128 so funktionierts, ist 
er grösser kommen 2byte zurück.

Kennt jemand das Problem, müssen die DTR, DSR, CTS, RTS irgendwie noch 
beachtet werden ? Liegt womöglich dort das Problem ?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Das Problem wird in Deinem Programm liegen. Die serielle Schnittstelle 
selbst verursacht so ein Problem nicht, und auch die Handshakeleitungen 
nicht.

Könnte es sein, daß Du irgendwo ein Problem mit vorzeichenbehafteten 
Datentypen hast?

von mbyte (Gast)


Lesenswert?

Je nach Programierumgebung werden deine Sende-char/string/byte als UTF-8 
interpretiert. U+00080->c2 80

http://www.utf8-zeichentabelle.de/unicode-utf8-table.pl?number=1024&htmlent=1

von Michael L. (nightflyer88)


Lesenswert?

Ja stimmt da hast du recht, liegt wirklich an der Codierung.

Habe mal andere Codierungen ausprobiert, aber da gibt es so viele, 
welche muss ich den nehmen ?

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Du solltest garkeine Codierung nutzen.
Eventuell gibt es eine Möglichkeit die Lesedaten ungefiltert zu 
senden/empfangen (Ohne Konvertierung).

von mbyte (Gast)


Lesenswert?

Michael L. schrieb:
> welche muss ich den nehmen ?

Dennis Heynlein schrieb:
> Du solltest garkeine Codierung nutzen.

Oder irgendwas, dass mit 8-bit auskommt.
https://de.wikipedia.org/wiki/ISO_8859-15
https://de.wikipedia.org/wiki/MacRoman

Ansonsten Netiquette

von Jobst M. (jobstens-de)


Lesenswert?

Dennis Heynlein schrieb:
> Du solltest garkeine Codierung nutzen.

Sehe ich auch so.

mbyte schrieb:
> Oder irgendwas, dass mit 8-bit auskommt.

Nein, das würde sein Programm ad absurdum führen, denn dann wird ihm 
nicht angezeigt, was wirklich empfangen wurde.


Gruß

Jobst

von bluppdidupp (Gast)


Lesenswert?

Die ASCII-Spalte dürfte für Bytes >127(dec) eigentlich auch nichts 
anzeigen (oder nur nen Platzhalter), ansonsten müsste im Programm 
eigentlich der Zeichensatz auswählbar sein.

von Michael L. (nightflyer88)


Angehängte Dateien:

Lesenswert?

So nun ist das Problem gelöst.
Wenn keine Codierung angegeben wird, so ist standard UTF8. Nun habe ich 
bei dem Senden und Empfangen ACSII Codierung verwendet, und siehe da es 
funktioniert !!

Hier kann das Tool ausprobiert werden. Läuft auf MAC OSX ab 10.4
Die Baudrate sollte auch frei Einstellbar sein, habe ich aber noch nicht 
ausprobiert mit einem AVR oder so. Wer das mal testen möchte, dem währe 
ich dankbar.

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.