Ist es möglich, einen Pin des seriellen Ports mit Python (oder C) kontinuierlich hoch zu setzen? Wenn ja, wie?Setzen Sie den Pin des seriellen Ports hoch mit Python
Antwort
Ja, es ist möglich mit pySerial.
Wenn Sie den Port öffnen, sollte die Tx-Leitung in den hohen Spannungszustand gehen, und wenn Sie niemals Daten senden, sollte sie in diesem Zustand bleiben (siehe). Ich habe das aber noch nie probiert. Möglicherweise müssen Sie stattdessen eine der Steuerzeilen wie CTR aktivieren.
Wie für Software, TheMachineCharmer Vorschlag von pySerial ist die plattformunabhängigste Art, es zu tun. Wenn Sie Windows verwenden, werden die Win32-API-Aufrufe zusammengefasst: here. Suchen Sie nach CreateFile
und (wenn Sie Steuerleitungen setzen müssen) und SetCommState
. Beachten Sie, dass der Dateiname, den Sie an CreateFile
übergeben, wie "\\\\.\\COM1"
aussehen sollte. Die .NET-Vorgehensweise ist zusammengefasst unter here. Sie müssen ein SerialPort
-Objekt erstellen und dann auf seine Eigenschaften zugreifen, um Steuerlinien festzulegen.
Mit den Pyserial-Methoden setRTS(level=True)
und setDTR(level=True)
können Sie die RTS- und DTR-Leitungen beliebig steuern. Zum Beispiel schaltet der folgende Code den RTS-Pin des ersten seriellen Ports um. (Einzelheiten finden Sie in der Pyserial-Dokumentation).
import time
import serial
ser = serial.Serial(0)
ser.setRTS(False)
time.sleep(0.5)
ser.setRTS(True)
time.sleep(0.5)
ser.setRTS(False)
Welche API verwenden Sie, um auf die serielle Schnittstelle zuzugreifen? –