0

我使用 pyserial 通过 USB 与 3D 打印机(Monoprice Select Mini V2)进行通信。当我第一次连接到打印机时一切正常,但是当我尝试重新打开连接时,我仍然可以发送命令但没有收到任何字符。

当我关闭端口并在同一个程序中重新打开它时,或者当我第二次重新运行 python 脚本在第一个脚本返回后打开端口时,就会发生这种情况。正确重新连接的唯一方法是重新启动打印机或拔下并重新插入。更改超时值或尝试仅读取一个字节并不能解决问题。

简短的非工作示例:

import serial
ser = serial.Serial('/dev/ttyACM0', baudrate=115200, timeout=5)
ser.write("\n".encode())
print(ser.readline().decode())
# prints 'echo:Unknown command: "~"' (Not sure why)
print(ser.readline().decode())
# prints 'ok N0 P15 B15'
ser.write("M105\n".encode())
# prints expected response
ser.close()
print(ser.isOpen())
# prints 'False'

ser.open()
print(ser.isOpen())
# prints 'True'
ser.write("\n".encode())
print(ser.readline().decode())
# times out
ser.write("M105\n".encode())
print(ser.readline().decode())
# times out

4

0 回答 0