【发布时间】:2017-07-01 11:43:54
【问题描述】:
我有一个 USB 设备,每次插入 PC 时它可能不会连接到同一个端口,鉴于我有它的 UID,我如何找到它的开发地址?
import serial.tools.list_ports as port
portlist = list(port.comports())
for p in portlist:
print p
给我输出:
/dev/ttyS0 - ttyS0
/dev/ttyUSB1 - USB2.0-Serial
/dev/ttyUSB0 - FT232R USB UART
我的设备是FT232R USB UART,目前它的开发地址是/dev/ttyUSB0,我需要在我的程序中进行串行读写(ser = serial.Serial(port, baud))。但是如果之前连接了多个设备并且我插入了这个设备,它改变了这个地址,我的问题是每次插入设备时如何才能找到这个地址?
【问题讨论】:
-
您好,您能否提供您已经完成的代码并使您的问题更具体(带有示例和更多解释)?
-
我已经用我的代码更新了问题,请看一下。
-
一种解决方案是编写
udev规则为您的设备设置一个永久名称:hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices -
@MichaelO。 ,在我运行程序的每个系统中,我是否必须这样做?(对不起这个愚蠢的问题,我以前从未这样做过)。如果是这样,那将是一个临时解决方案。
-
@PratikKumar 不幸的是,是的,您必须为每个系统创建一个规则。但是,正如您在此处发布的那样,调用 list_ports 并找到您的设备有什么问题?
标签: python linux usb pyserial pyudev