【发布时间】:2014-04-12 01:48:31
【问题描述】:
使用 Python 3.3 和 pySerial 进行串行通信。
我正在尝试向我的 COM PORT 写入命令,但 write 方法不会获取我的字符串。 (大部分代码来自这里Full examples of using pySerial package
发生了什么事?
import time
import serial
ser = serial.Serial(
port='\\\\.\\COM4',
baudrate=115200,
parity=serial.PARITY_ODD,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
if ser.isOpen():
ser.close()
ser.open()
ser.isOpen()
ser.write("%01#RDD0010000107**\r")
out = ''
# let's wait one second before reading output (let's give device time to answer)
time.sleep(1)
while ser.inWaiting() > 0:
out += ser.read(40)
if out != '':
print(">>" + out)
ser.close()
错误出现在 ser.write("%01#RDD0010000107**\r") 处 Traceback 是这样的 数据 = to_bytes(数据) b.附加(项目) TypeError:需要一个整数。
【问题讨论】:
-
可能是因为 serial 需要一个字节数组而不是 python3 中的字符串。也许以下内容可以帮助您:stackoverflow.com/questions/7585435/…
-
在我的字符串修复我的问题之后添加 .encode() ! (我还去掉了一些不必要的部分)。谢谢!
-
@Garvin 如果问题解决了,能否请您自己写一个答案并将问题标记为已回答?谢谢!