作为对我的程序的回应,serial.tools.list_ports.comports()我只收到COM1 - Communications Port (COM1). 当我在代码中编写它时serial.tools.list_ports.main()
,它显示所有没有名称的 com 端口,只有一个数字。问题是如何解决这个问题?在另一个调制解调器上一切正常,但我买了一个新的调制解调器并开始完成它的程序,在这里,调制解调器采用联发科的芯片,木材也是 MTK 的。这是所有代码以了解情况
import serial
import re
import time
import serial.tools.list_ports
def serialget():
ncm=1
while True:
ports = serial.tools.list_ports.comports()
for port in ports:
for i in port.__str__().split('\n'):
try:
ii=""
if i.find('Intel Mobile (acm2)') != -1:
ncm=0
ii=i
print("fine")
elif i.find('USB Serial Device') != -1:
ncm=11
ii=i
elif i.find('MD AT') != -1:
print("FM350")
ncm = 350
ii=i
com = re.findall(r'\w{1,100}', ii)
for el in com[:1]:
comport = str(el)
ser = serial.Serial(port=comport, baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=0, xonxoff=False, rtscts=True, writeTimeout=None, dsrdtr=False, interCharTimeout=None)
return ser, ncm
except:
time.sleep(2)
serialget()
serialget()

总的来说,我找到了解决问题的方法:只是不要在循环中将 ports 转换为 str,而是在那里写一个描述
在控制台中它已经显示了整个端口列表,所以像我一样的人很愚蠢,使用它