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. 在关闭串口之前,还有线程在使用串口的对象进行读取操作,如果有开线程,在线程里直接做关闭动作,防止读取出错。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/101678.html