2016-05-24 26 views
-1

Ich möchte Puls zu meiner Platine mit RS232-Leitung senden Kann ich RTS-Pin verwenden? (Danach meine Platine bekommen Puls und fangen an, Daten an den PC senden) wie kann ich diesen Pin in C# aktivieren?
danke in fortgeschrittenem.Wie kann ich aktive RTS (RS232) pin in C#

+0

Die Eigenschaft SerialPort.RtsEnable ist nicht gut versteckt. Du solltest sicherlich beschreiben, was passiert ist, als du versucht hast, es zu benutzen. –

+0

'Ich habe myport.DtrEnable = true; "Aber ich sehe keinen Puls an diesem Pin – dany

+0

Wenn Sie mit einem Kabel testen, wird die Anhebung von DTR auf CD oder DSR angezeigt. Wenn RTS und ein Kabel angehoben werden, wird die Ausgabe auf CTS angezeigt. DTR und RTS sind nicht gepulst, sie sind ein- oder ausgeschaltet. – dbasnett

Antwort

1

Versuch:

port.RtsEnable = true; 
Thread.Sleep(1000); // ~1000 ms pulse width 
port.RtsEnable = false; 

Beachten Sie, dass das Verhalten des RTS-Pin den Port unerwartet sein kann vor dem Öffnen (aus meiner Erfahrung geht es je nach Hardware, FTDI-Chips auf mehrere Male/off auf Initialisieren) .

Vorschlagen, einige echte RS232-Relais zu verwenden (die sehr billig sind) - für volle und stabile Kontrolle über die Spannung und den Zustand.

+0

Gute Antwort, aber IMHO glaube ich, dass "RTS bei der Initialisierung mehrere Male ein-/ausgeschaltet wird" hängt vom Benutzeranwendungscode ab und davon, wie die [Kommunikation konfiguriert ist] (https://msdn.microsoft.com/en-us/ Bibliothek/Windows/Desktop/aa363201 (v = vs.85) .aspx). Mit einem sorgfältigen Entwurf wird der RTS nicht hoch gehen, bis die COM-Ressource erfolgreich geöffnet wurde und RTS tatsächlich hoch eingestellt ist. –

+0

Danke für die Informationen, können Sie sagen, ob es möglich ist, mit C# so tief zu bekommen? – idanp

+0

Leider ist das nicht mein Ruf. Ich bin nur mit dem C/C++ - Weg vertraut, wie im [MSDN-Beispiel] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa363201 (v = vs.85) .aspx) , aber ich weiß nicht, was genau ist das Verhalten der Klasse [Win32_SerialPort] (https://msdn.microsoft.com/en-us/library/windows/desktop/aa394413 (v = vs.85) .aspx) . Vielleicht kann jemand anderer mit C# Hintergrund helfen. –