使用Python和pyserial访问USB串口

16 投票
2 回答
57498 浏览
提问于 2025-04-16 19:22

我想知道怎么用pyserial访问USB端口。我看到一个例子,里面有:

import serial

ser = serial.Serial('/dev/ttyUSB0')

我之前在Windows上用MATLAB访问串口时,使用的语法是这样的,/dev/ttyUSB0会被替换成COM1或者其他的COM端口。

我现在在Mac上,试过用串口扫描器,但是没成功。我觉得我应该这样写:

import serial

name = ? # Names of serial ports on Mac OS X
ser = serial.Serial(name)

我怎么才能知道在Mac上应该用什么name呢?

编辑:为了回应下面的一个回答,我想知道怎么访问USB到RS232的转换器以及纯USB端口。

2 个回答

3

要找到可用的端口,你可以使用 serial.tools 这个工具(它是 pyserial 库的一部分,但需要单独导入)。然后可以通过 .device 方法找到设备名称。在我的Mac上这样做是有效的:

from serial.tools import list_ports
port = list(list_ports.comports())
for p in port:
    print(p.device)

关于 list_ports 的更多信息,可以查看这个链接: https://pyserial.readthedocs.io/en/latest/tools.html#module-serial.tools.list_ports

10

你只能通过pyserial来访问USB串口适配器(也就是USB RS-232转接头)。如果你想要更通用的USB访问方式,那就应该看看“libusb”。如果你是想通过USB访问RS-232接口,那么你需要在/dev目录下找一个以cu.usb开头的文件(比如/dev/cu.usbserial-181)。

撰写回答