1、错误描述
>>> t=serial.Serial("COM3",4800);
>>> n=t.write('00000200=0000020');
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
n=t.write('00000200=0000020');
File "D:PythonPython36libsite-packagespyserial-3.3-py3.6.eggserialserialwin32.py", line 308, in write
data = to_bytes(data)
File "D:PythonPython36libsite-packagespyserial-3.3-py3.6.eggserialserialutil.py", line 63, in to_bytes
raise TypeError('unicode strings are not supported, please encode to bytes: {!r}'.format(seq))
TypeError: unicode strings are not supported, please encode to bytes: '00000200=0000020'
>>> n=t.write('hu');
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
n=t.write('hu');
File "D:PythonPython36libsite-packagespyserial-3.3-py3.6.eggserialserialwin32.py", line 308, in write
data = to_bytes(data)
File "D:PythonPython36libsite-packagespyserial-3.3-py3.6.eggserialserialutil.py", line 63, in to_bytes
raise TypeError('unicode strings are not supported, please encode to bytes: {!r}'.format(seq))
TypeError: unicode strings are not supported, please encode to bytes: 'hu'
>>>
2、错误原因
需要将传输的字符串添加encode()方法,需要对字符串进行编码
3、解决办法
>>> n=t.write('00000200=00000200'.encode());
>>> print(t.portstr);
COM3
>>> print(n);
17
>>> s=t.read(n);
print(s);