PySerial-无法发送STX

KMB*_*KMB 2 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
Run Code Online (Sandbox Code Playgroud)

但是,当我查看示波器上的232数据时,我尝试发送的STX看上去并不像在Hperterminal中发送的STX命令。

有任何想法吗?我确信这是非常简单的,我只是忽略了一些琐碎的事情。

谢谢!

Fer*_*ran 5

串行类中的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
Run Code Online (Sandbox Code Playgroud)