在使用pyserial开发的串口程序的时候,开发设备串口号是5,程序打包后运行正常,可以打开串口并通信。当换到别的电脑上发现打开串口一直报异常:串口不存在或被占用,用其他串口助手可以操作该串口。
排除是串口设备的问题,更改设备管理器中的串口号,将COM12修改为COM5后,程序可以正常运行,后多次测试,发现串口号大于等于10之后,都不能正常打开。
找到代码中获取串口号的程序,获取当前串口名称:
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正常打开串口啦。