使用Python 3.3和pySerial进行串行通信.
我正在尝试向COM PORT写一个命令,但write方法不会占用我的字符串.(大多数代码来自这里使用pySerial包的完整示例
这是怎么回事?
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()
Run Code Online (Sandbox Code Playgroud)
错误发生在ser.write("%01#RDD0010000107**\r")中,它获取Traceback就像这个data = to_bytes(data)b.append(item)TypeError:需要一个整数.
Gar*_*vin 29
事实证明,字符串需要转换为bytearray,为此,我编写了代码
ser.write("%01#RDD0010000107**\r".encode())
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题