python3 pySerial TypeError:不支持unicode字符串,请编码为字节:

新手上路,请多包涵

在 Python 3 中,我导入了 pySerial 库,这样我就可以通过串行命令与我的 Arduino Uno 通信。

它在 Python 2.7 中运行良好,但在 Python 3 中我一直遇到错误,它说这个

类型错误:不支持 unicode 字符串,请编码为字节:’allon’

在 Python 2.7 中,我唯一不同的是使用 raw_input 但我不知道 Python 3 中发生了什么。这是我的代码

import serial, time
import tkinter
import os

def serialcmdw():
    os.system('clear')
    serialcmd = input("serial command: ")
    ser.write (serialcmd)

serialcmdw()

ser = serial.Serial()
os.system('clear')
ser.port = "/dev/cu.usbmodem4321"
ser.baudrate = 9600
ser.open()
time.sleep(1)
serialcmdw()

原文由 Nik Hendricks 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 865
2 个回答

将您正在写入串行的数据编码,在您的情况下将“serialcmd”编码为字节。尝试以下操作:

 ser.write(serialcmd.encode())

原文由 nsr 发布,翻译遵循 CC BY-SA 4.0 许可协议

我在学习“Arduino Python Serial”时发现了同样的问题

你可以这样做另一种方式:

 ser.write(str.encode('allon'))

原文由 Vichagorn Lupponglung 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进