【问题标题】:Serial communication over USB converter in Python - how to aproach this?在 Python 中通过 USB 转换器进行串行通信 - 如何解决这个问题?
【发布时间】:2013-09-02 08:58:33
【问题描述】:

python 程序需要每秒从串口接收一个字符串。我打算使用 RS-232 到 USB 转换器。该应用程序将在 Ubuntu 10.04 下运行。

我该如何处理?我使用pySerial 还是libusb

这期间需要做一些处理,所以同步通信是不可行的。我是使用某种中断还是需要打开单独的线程?或者我是否使用阻塞读取,相信 1 对我的计算来说已经足够了(现在已经足够了)?

我知道,RTFM,但是从一开始就朝着正确的方向前进会为我节省很多时间!感谢您对我的包容。

【问题讨论】:

    标签: python serial-port usb


    【解决方案1】:

    如果您的 RS232-USB 转换器在 Ubuntu 中具有使其看起来像 COM 端口的驱动程序,那么您将需要使用 pySerial(接口与任何其他 COM 端口相同)。如果您的设备没有驱动程序,那么您可能必须使用 libusb 并为您的特定设备找到协议。如今,大多数主要的 RS232-USB 转换器都在 Linux 内核中提交和维护了基于 USB 串行的驱动程序。只需与您的供应商核实即可。

    有很多方法可以进行并行处理,但通常我以两种方式编写我的应用程序:

    • 拥有一个读取线程,除了读取和填充本地线程安全缓冲区之外什么都不做,以便在需要时为其他线程准备好数据。

    • 拥有一个读取数据的读取线程,确定数据的去向并通过消息传递/事件处理将其传递给需要它的组件。

    这里的决定将取决于您的目标是什么,以及在阅读之外需要多少处理。

    【讨论】:

    • 感谢您的很多想法。现在来实现它们:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-07
    相关资源
    最近更新 更多