我有一个USB设备(基于STM32F4微控制器),在USB描述符中设置了VID,PID和产品描述。
VID = 0x0483
PID = 0x5740
Product Description = "ACME thing-a-me-bob"
在macOS上,使用serial.tools.list_ports.grep()
可以很好地找到我的设备。例如p = grep("thing-a-me-bob")
或`p = grep(“ ACME”)
但是在Windows(Win 10)上,grep找不到我的设备。如果我使用grep("")
,则它会列出我的设备(以及所有其他设备),但只会显示:
COM3 - USB Serial Device (COM3)
该设备仅使用Win 10附带的标准Microsoft CDC驱动程序。我本以为,简单/标准的想法就像是从USB设备读取并使用产品描述字符串一样(就像标准的macOS驱动程序一样)确实)。
是否可以让serial.tools.list_ports.grep()
与标准Windows驱动程序一起使用?
注意:grep("0483:5740")
确实找到了我的设备,但这是ST Micro提供的一组合理使用的VID:PID值。
答案 0 :(得分:0)
不确定grep()
的工作方式,但是您可以像这样连接。
if sys.platform == 'win32':
ports = list(list_ports.comports())
for port in ports:
# query each port and connect if description is found
if 'ACME thing-a-me-bob' in port.description:
s = serial.Serial(port.device)