PySerial - 无法发送STX

时间:2010-12-15 11:10:11

标签: python pyserial

好的,所以我是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,看起来不像是在Hperterminal中发送的STX命令。

有什么想法吗?我相信这是非常直接的,我只是忽略了一些微不足道的事情。

谢谢!

2 个答案:

答案 0 :(得分:4)

串行类中的write函数接受字节或字符串。你传递一个整数,所以结果是未知的,也许是将它转换为str,所以你要发送char'2'。

正确的做法是:

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

答案 1 :(得分:0)

您确定HyperTerminal和PySerial使用相同的配置。您应该确保以下内容相同:

  • Baudrate(您使用的是19200)
  • 奇偶校验(您正在使用PARITY_ODD)
  • 数据位数(pySerial默认值为8)
  • 停止位(pySerial默认值为1)