【发布时间】:2017-12-05 02:45:32
【问题描述】:
我正在使用 pyserial 与一些使用 Modbus 协议的传感器进行通信。在 Python 2.7 中,这可以完美运行:
import serial
c = serial.Serial('port/address') # connect to sensor
msg = "\xFE\x44\x00\x08\x02\x9F\x25" # 7 hex bytes(?)
c.write(msg) # send signal
r = c.read(7) # read 7 hex bytes (?).
在 Python 3 中,这不起作用。我知道这与 Python 2/3 处理二进制字符串与 unicode 字符串的方式不同有关。我发现许多其他线程建议解决方案应该是简单地在我的消息 (msg=b""\xFE\x44\x00\x08\x02\x9F\x25") 上添加一个 b 以将其指定为二进制字符串,但 这对我的情况不起作用。
有什么见解吗?我应该在 Python 3 中发送什么以便传感器接收到相同的信号?我已经无计可施了……
我应该补充一点,我对串行连接完全陌生(嗯...... 1 周大),并且(尽管阅读了很多)我很难理解不同的字符/字符串格式......因此问号上面的cmets。请适当地提出答案:)。
提前致谢!
【问题讨论】:
标签: python serial-port hex pyserial python-2to3