好的,所以我是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命令。
有什么想法吗?我相信这是非常直接的,我只是忽略了一些微不足道的事情。
谢谢!
答案 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使用相同的配置。您应该确保以下内容相同: