python3.7 连接串口,
用tkinter做的界面,连接com串口后,通过删除连接对象,再执行一次连接时,报错:句柄无效
File "E:\AutoTestStation\GtkAutoMonitorTest\venv\lib\site-packages\serial\serialwin32.py", line 257, in in_waiting
raise SerialException("ClearCommError failed ({!r})".format(ctypes.WinError()))
serial.serialutil.SerialException: ClearCommError failed (OSError(9, '句柄无效。', None, 6))
原因:1.分析可能是断开连接的时候未清理干净,如果是直接关闭tk窗口再进来 是正常的。如是自己通过代码serial.close()闭关再打开,就会报此错误。??
原因已经找到还是串口关闭之后,
self.port.close()
重复打开的问题。
在执行完下面这句话之后,我又再次执行了打开串口的命令。
if self.port == None:
self.myserial.open_port(self.com_selected)
self.port = self.myserial.port
self.show_message("Open com success.")
return True
else:
return False
2. 在关闭串口之前,还有线程在使用串口的对象进行读取操作,如果有开线程,在线程里直接做关闭动作,防止读取出错。