PySerial - не может отправить STX - PullRequest
       9

PySerial - не может отправить STX

2 голосов
/ 15 декабря 2010

Хорошо, так что я полный новичок в pySerial.Я пытаюсь связаться с лабораторным оборудованием, но у меня возникают проблемы при отправке команды STX (начало текста).Пока что мой базовый код выглядит так:

ser = serial.Serial(0, 19200, timeout=1,parity=serial.PARITY_ODD, rtscts=0)
ser.write(0x02) #ASCII STX is 0x2 in hex

Но когда я смотрю на данные 232 в своей области, STX, который я пытаюсь отправить, не выглядит как команда STX, отправленнаяГипертерминал.

Есть идеи?Я уверен, что это невероятно просто, и я просто пропускаю что-то тривиальное.

Спасибо!

Ответы [ 2 ]

5 голосов
/ 15 декабря 2010

Функция записи в последовательном классе принимает байты или строки.Вы передаете целое число, поэтому результат неизвестен, возможно, вы приводите его к str, поэтому вы отправляете символ '2'.

Правильный способ сделать это:

ser = serial.Serial(0, 19200, timeout=1,parity=serial.PARITY_ODD, rtscts=0)
ser.write(chr(0x02)) #ASCII STX is 0x2 in hex
0 голосов
/ 15 декабря 2010

Вы уверены, что одна и та же конфигурация используется для HyperTerminal и PySerial. Вы должны убедиться, что следующее одно и то же:

  • Бодрейт (вы используете 19200)
  • Четность (вы используете PARITY_ODD)
  • Количество бит данных (pySerial default 8)
  • Стоповые биты (pySerial default 1)
...