【问题标题】: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 串行的驱动程序。只需与您的供应商核实即可。
有很多方法可以进行并行处理,但通常我以两种方式编写我的应用程序:
这里的决定将取决于您的目标是什么,以及在阅读之外需要多少处理。