【问题标题】:Access USB serial ports using Python and pyserial使用 Python 和 pyserial 访问 USB 串口
【发布时间】:2022-03-31 18:33:21
【问题描述】:

如何使用 pyserial 访问 USB 端口?我见过example 有:

import serial

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

我曾经在 Windows 上从 MATLAB 访问串行端口,并使用适当的语法,/dev/ttyUSB0 将替换为 COM1 或任何其他 COM 端口。

我使用的是 Mac,我尝试使用 pyserial 文档中的 serial port scanners 无济于事。我想我应该这样写:

import serial

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

我如何找出 Mac 上的 name 应该是什么?

编辑:针对下面的回答,我想了解如何访问 USB 到 RS232 转换器以及纯 USB 端口。

【问题讨论】:

    标签: python macos serial-port usb pyserial


    【解决方案1】:

    您只能使用 pyserial(即 USB RS-232 加密狗)访问 USB 串行适配器。如果您想要通用 USB 访问,您应该查看“libusb”。如果您尝试通过 USB 访问的是 RS-232,那么您应该在 /dev 中查找以 cu.usb* 开头的文件(例如 /dev/cu.usbserial-181)。

    【讨论】:

    • 即使在使用 Houdini 显示隐藏的文件和文件夹时,/dev 也是一个没有任何内容的符号链接。我尝试使用 Finder 的转到文件夹,我会得到“找不到文件夹”。我该如何解决这个问题?
    • 从终端窗口尝试ls -l /dev/cu.usb*
    • 一点也不像cu.usb。我确实找到了cu.Kit-COM1,仅此而已。但是 Macbook Pro 在左侧有两个 USB 端口(键盘和其他内置插件可能使用更多隐藏的端口)。
    • 只有插入了 RS-232 适配器的 USB 端口才会显示为 /dev/cu.whatever(在您的情况下是 cu.Kit-COM1)。 USB 不是传统意义上的串行。它远比这更高科技。
    【解决方案2】:

    要查找可用端口,您可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-07
      • 2016-04-30
      • 2012-06-29
      • 1970-01-01
      • 2011-06-27
      • 2011-01-05
      • 2013-02-22
      相关资源
      最近更新 更多