Установите высокий уровень последовательного порта, используя python - PullRequest
7 голосов
/ 13 марта 2010

Возможно ли установить один вывод последовательного порта непрерывно высоким с помощью python (или C)?Если да, то как?

Ответы [ 3 ]

13 голосов
/ 15 января 2011

Используя методы pyserial setRTS(level=True) и setDTR(level=True), вы можете управлять линиями RTS и DTR по желанию. Например, следующий код переключит вывод RTS первого последовательного порта. (Подробности см. В документации по псериалу).

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)
2 голосов
/ 13 марта 2010

Да, это возможно с использованием pySerial .

1 голос
/ 14 марта 2010

Если вы откроете порт, линия Tx должна перейти в состояние высокого напряжения, а если вы никогда не отправляете данные, она должна оставаться в этом состоянии (см. здесь ). Хотя я никогда не пробовал этого. Возможно, вам придется включить одну из линий управления, например CTR.

Что касается программного обеспечения, TheMachineCharmer предложение pySerial является наиболее независимым от платформы способом сделать это. Если вы используете Windows, вызовы Win32 API суммируются здесь . Ищите CreateFile и (если вам нужно установить контрольные линии) GetCommState и SetCommState. Обратите внимание, что имя файла, которое вы передаете CreateFile, должно выглядеть как "\\\\.\\COM1". Способ .NET сводится здесь . Вам нужно будет создать объект SerialPort, а затем получить доступ к его свойствам для установки линий управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...