如果没有来自任何COM端口的响应,则PySerial Raise异常

问题描述

我试图不对COM端口进行硬编码,因为它在不同PC上并不总是相同,因此我编写了以下代码以遍历所有可用的COM端口并查找第一个字节字符串响应(当前不为空的任何内容) )。我唯一正在努力的事情是如何处理没有COM端口返回响应的事件(即有人没有将其插入)。我该怎么办?

编辑:我在循环中添加一个标志,是否有更好的方法呢?

这是代码

import serial.tools.list_ports

# Loop through all available COM ports
for port,desc,hwid in sorted(serial.tools.list_ports.comports()):

        ser = serial.Serial(
                port=port,baudrate=38400,bytesize=8,parity='N',stopbits=2,timeout=0)

        # Break if response received
        if ser.readline():
                flag = True
                break

        ser.close()

try:
        flag
        print("{} is open.".format(port))
except NameError: print("No open COM port.")

如果有什么奇怪的话,请完成代码

import serial.tools.list_ports

# Loop through all available COM ports
for port,timeout=0)

        # Break if response received
        if ser.readline():
                break

        ser.close()
else:
        raise serial.SerialException ("No COM port found.")

print("{} is open.".format(port))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)