Python PySerial-无法发送STX

Python PySerial-无法发送STX,python,pyserial,Python,Pyserial,好的,所以我是pySerial的一个完全的noob。我正在尝试与一台实验室设备通信,但在发送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命令完

好的,所以我是pySerial的一个完全的noob。我正在尝试与一台实验室设备通信,但在发送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命令完全不同

有什么想法吗?我确信这是非常直截了当的,我只是忽略了一些琐碎的事情


谢谢

您确定超级终端和PySerial使用相同的配置吗。您应确保以下各项相同:

  • 波特率(您使用的是19200)
  • 奇偶校验(使用奇偶校验)
  • 数据位数(pySerial默认值8)
  • 停止位(pySerial默认值1)

    • 串行类中的write函数接受字节或字符串。您正在传递一个整数,因此结果未知,可能正在将其强制转换为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
      

      我检查过了,设置是一样的。啊,是的,成功了!谢谢我尝试发送一个字节,但还没有将其作为chr传递。