鱼C论坛

 找回密码
 立即注册
查看: 3771|回复: 2

[已解决]pyserial串口通讯检测不到虚拟串口,怎么能检测到虚拟串口

[复制链接]
发表于 2023-7-29 17:34:53 | 显示全部楼层    本楼为最佳答案   
要检测虚拟串口,你可以使用pyserial库的list_ports.comports()方法。以下是给定代码的修改版本,以便检测虚拟串口:

  1. import serial.tools.list_ports
  2. from time import sleep

  3. def check_valid_uart():
  4.     ports_value = []
  5.     ports_list = serial.tools.list_ports.comports()
  6.     for i in range(len(ports_list)):
  7.         ports_value.append(ports_list[ i][0])
  8.     print("ports_value is ", ports_value)
  9.    
  10.     if len(ports_value) == 0:
  11.         print("无法找到串口.")
  12.         self.comboBox_uart.clear()
  13.         self.comboBox_uart.setCurrentIndex(-1)
  14.     else:
  15.         for i in range(len(ports_value)):
  16.             index = self.comboBox_uart.findText(ports_value[ i], qc.Qt.MatchFixedString)
  17.             if index < 0:
  18.                 self.comboBox_uart.addItem(ports_value[ i])
  19.             else:
  20.                 print("当前串口为 ", self.comboBox_uart.currentText())

  21. # 开启监听线程
  22. def gui_status_thread():
  23.     print("开始 gui_status_thread 线程.")
  24.     while True:
  25.         check_valid_uart()
  26.         sleep(3)
复制代码


这段代码将使用list_ports.comports()函数获取所有可用串口列表,并将其添加到ports_value中。如果没有找到任何串口,它将清除下拉框(comboBox_uart)并将其索引设置为-1。否则,它会遍历ports_value,并在下拉框中添加新的串口选项。请确保你的代码中有相关的导入语句和适当的上下文环境。
如果问题已经解决,请设置最佳答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-23 22:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表