本质
第一个脚本启动,搜索可用的串行端口并将它们添加到列表中,将它们传递给另一个脚本,然后重新加载(无法强制serial.tools.list_ports在循环中查找端口)。第二个脚本接受一个列表并且已经将它用于某些目的。问题是如何实现脚本之间的通信,前提是其中一个不断重新加载。如果可以不重新加载第一个脚本,而是循环查找端口,那就更好了
这是一个示例代码:
import serial.tools.list_ports
port_list = []
def search_ports():
ports = serial.tools.list_ports.comports()
for port, desc, hwid in sorted(ports):
port_list.append(port)
search_ports()
事实证明,这个模块在一个循环中正确扫描了所有端口,错误出现在代码的下一部分,在那里我将新端口写入另一个具有相似名称的变量,我没有为 OptionMenu 小部件更新
这是一个工作版本: