好的,所以我对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命令。
有任何想法吗?我确信这是非常简单的,我只是忽略了一些琐碎的事情。
谢谢!
串行类中的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)
| 归档时间: |
|
| 查看次数: |
2822 次 |
| 最近记录: |