gpt4 book ai didi

Python:找不到文件(pySerial)

转载 作者:行者123 更新时间:2023-12-01 00:49:04 27 4
gpt4 key购买 nike

通过 pySerial 打开串行/控制台端口时遇到一个小问题。我的程序旨在获取事件的 com 端口,打开控制台连接,然后发送数据。当程序运行并插入 RS232 USB 时,我收到 SerialException 错误。 (更具体地说,“无法打开端口:FileNotFoundError”)

如果程序运行,它将继续打印“No RS232 Connected”,但是当连接 RS232 USB 时,程序会中断并遇到 SerialException 错误。

如果我在运行程序之前插入 RS232 USB,然后运行它,它会读取并执行正常操作,不会出现问题。

    ports = serial.tools.list_ports.comports(include_links=False)

if not ports:
print("No RS232 Connected")
if ports:
for port in ports:
print('Found port ' + port.device)
ser = serial.Serial(port.device)

if ser.isOpen():
ser.close()
break
console = serial.Serial(port.device, baudrate=9600, parity="N", stopbits=1, bytesize=8, timeout=0.4)

我对 Python 和一般编程相当陌生,但我觉得问题可能出在“端口”列表上,由于 while True 循环,它已经被填充了两次。然后,当我们通过打开端口来创建控制台时,我们期望列表中有一个条目,但实际上有两个条目。由于我们不能在同一个 COM 端口上有 2 个打开的控制台连接,因此我们收到错误。

如果我打印“端口”列表,我会得到这个。

"[<serial.tools.list_ports_common.ListPortInfo object at 0x000002B5D77F0D68>]
[<serial.tools.list_ports_common.ListPortInfo object at 0x000002B5D77F0D68>]
"

任何帮助将不胜感激!如果您需要更多详细信息,请告诉我。谢谢,

最佳答案

经过进一步研究,我意识到当RS232 USB插入PC时,我们需要给它一点时间来打开流。听起来好像是在为其创建临时文件时打开的。尽管它几乎立即识别出 COM 端口可用,但在我尝试创建 Serial 实例时它尚未准备好,这就是我收到 FileNotFound 错误的原因。

一个简单的半秒 sleep 功能就解决了这个问题!

关于Python:找不到文件(pySerial),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56713955/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com