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