注意: 我使用的是Python 2.7和pySerial进行串行通信。
我找到了这篇文章,其中列出了两种方法:http://www.zaber.com/wiki/Software/Python#Displaying_a_list_of_available_serial_ports
这种方法适用于Windows和Linux,但有时会在Linux上错过虚拟端口。
import serial
def scan():
# scan for available ports. return a list of tuples (num, name)
available = []
for i in range(256):
try:
s = serial.Serial(i)
available.append( (i, s.portstr))
s.close()
except serial.SerialException:
pass
return available
print "Found ports:"
for n,s in scan(): print "(%d) %s" % (n,s)
还有一个仅在Linux上适用的选项,但它包括虚拟端口:
import serial, glob
def scan():
# scan for available ports. return a list of device names.
return glob.glob('/dev/ttyS*') + glob.glob('/dev/ttyUSB*')
print "Found ports:"
for name in scan(): print name
假设我可以通过平台检测,在Linux上运行第二种方法(包括虚拟端口),在Windows上运行第一种方法,那么Mac怎么办?
如何枚举串口(包括虚拟串口),无论在哪个平台下都能实现呢?
编辑
我找到了几个相关的问题: