使用Python和pyserial访问USB串口
我想知道怎么用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)。