pyserial开发问题serial.serialutil.SerialException:FileNotFoundError(2, ‘系统找不到指定的文件。‘, None, 2)

在使用pyserial开发的串口程序的时候,开发设备串口号是5,程序打包后运行正常,可以打开串口并通信。当换到别的电脑上发现打开串口一直报异常:串口不存在或被占用,用其他串口助手可以操作该串口。
排除是串口设备的问题,更改设备管理器中的串口号,将COM12修改为COM5后,程序可以正常运行,后多次测试,发现串口号大于等于10之后,都不能正常打开。
列举当前系统串口号的程序如下:

def serialList(self):                                       #扫描获取端口号列表,并以列表形式返回
        comList = []
        portList = list(serial.tools.list_ports.comports()) #获取当前可用串口信息
        portList.sort(reverse = True)
        for port in portList:
            # comList.append(port[0])
            port_str = port[1]                              #将串口信息格式重新调整,便于显示
            port_str = '%s:%s' % (port[0], port_str)
            comList.append(port_str)                        #将调整后的串口信息加入列表中
        return comList
找到代码中获取串口号的程序,获取当前串口名称:
self.serial.com.port = self.serialCOMComboBox.currentText() 

获取系统设备串口名称的格式如下:
COM12:USB Serial Port (COM12)
pyserial只需要用到其中的COM12即可,因此使用split将COM12分割出来。使用代码如下:

serial_port_str = self.serialCOMComboBox.currentText()
serial_port_str = serial_port_str.split(":", 1)
self.serial.com.port = serial_port_str[0]

分割后的结果为:
[‘COM12’, ‘USB Serial Port (COM12)’]
加上其他串口参数之后就可以使用serial.open正常打开串口啦。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值