Kommunikation RS232 Mikrocontroller

Gast #2735150
Lesenswert?

Hallo,

ich habe einen ATmega1284P und habe eine Kommunikation mit UART 
programmiert über eine RS232 Schnitstelle und LabVIEW. Das 
Betriebssystem ist Win 7 Professional.
Die Kommunikation mit dem Mikrocontroller und einem Terminal 
funktioniert reibungslos.
Sobald ich jedoch Befehle in LabVIEW eingebe und abschicke, reagiert er 
erst nachdem wirklich 40 Zeichen geschickt worden sind, "\r\n" haben 
keine Wirkung.
Woran könnte das liegen?
Gast #2735203
Lesenswert?

Was ich in das Senden Feld in LW eingebe sieht folgendermaßen aus:

getvalue00000000000000000000000000000000

danach erhalte ich einen Spannungswert zurück.

mit

getvalue\r\n

reagiert er nicht. Er reagiert erst nachdem 40 geschickt worden sind.
#2735266
Lesenswert?

Scheinbar antwortet die Software bei allem was er über das Terminal 
schickt. Nur übre Labview antwortet er nicht. Ich begreif immer noch 
nicht was es mit der Software zu tun hat. UART bleibt UART und wenn UART 
funktioniert funktionierts auch. Die Frage ist hier wohl eher wie man 
Labview sagen kann, dass ein CR und LF mitgesendet wird und wie man das 
macht.
#2735293
Lesenswert?

Klar würde es dann gehen er kann auch hingehen und das ding so 
programmieren das ein beliebiges zeichen das ende des Strings darstellt. 
Aber die Software scheint ja auf das CR/LF zu warten und da muss es doch 
eine Lösung geben wie Labview den String von sich aus schon abschliesst. 
Schliesslich soll Software auch so programmiert sein, dass sie überall 
funktioniert. Und der Nutzer soll sich auch nicht noch einarbeiten in 
das System und Befehle lernen.
#2735318
Lesenswert?

Ohne mit Labview gearbeitet zu haben.
Wenn du was ins Terminal eingibst wird jedes Zeichen entweder sofort 
gesendet oder spätestens wenn du Enter drückst.
In Lab View wird das Kommando nichte gesendet werden wenn du die beiden 
MetaZeichen \r\n eingibst.
Prüfe doch einfach wann wirklich Daten über die Schnittstelle gehen, ich 
wette daß die erst nach dem kommpletten Kommando von Labview gesendet 
werden.
#2735326
Lesenswert?

Hallo,

Das ist in LabVIEW ganz einfach, du darfst in deinen String nicht \r\n 
schreiben, denn für \r und \n gibt es eigene Konstanten in der String 
Palette.

Alles was du nun machen musst, ist den String den du schicken willst mit 
deinen Konstanten zusammenzufügen. Wenn du es nicht findest, kann ich 
dir auch eine VI schicken, aber leider erst Abends, jetzt habe ich kein 
LabVIEW zur hand.

Das sollte dein Problem lösen ;)

Viel Spaß

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