如何连接到USB串行设备?


12

我有一个带有USB串行端口电缆的设备,我想将其连接到Raspberry Pi。此USB到串行电缆的芯片组是Prolific Technology,Inc.的PL-2303。

如何使用Python从该设备的串行连接读取数据?


1
有趣的问题。这可能帮助与USB部分:raspberrypi.stackexchange.com/questions/258/...
Jivings

1
这是两个问题吗?具体来说,“如何安装串行设备的驱动程序?” 和“如何在Python中连接到串行设备?”。关于驱动程序的问题在此站点上很长。但是,Python问题可能更特定于StackOverflow之类的网站。无论基于Linux的体系结构或安装机制如何,我都认为与Python上的串行设备进行通信是相同的。
RLH 2012年

与板载串行端口(UART引脚)和USB串行端口进行通信应该没有区别。
Alex Chamberlain

这个问题写着:我该如何开始使用[配置\石蕊测试PL2303 TTL串口(raspberrypi.stackexchange.com/questions/41553/...)?确认硬件后,即可招待正在运行的pyserial以从串行端口提取数据
gatorback

Answers:


7

要使用Python与串行设备通信,请使用pyserial模块。如果在您的发行版中不可用,则可以通过从pyserial项目页面获取源代码副本并运行“ python setup.py install”来进行安装。

简短的介绍中提供了使用pyserial的简单示例。

默认情况下,PL-2303的模块可用-请参阅固件GitHub存储库 -插入设备后,您应在中看到它的启动状态/var/log/messages。我已经连接到Arduino,并且在通讯端口/dev/ttyUSB0(不同的设备,驱动程序,芯片组等)上“正常工作” ,因此您的行驶里程可能会有所不同)。


连接设备后,我现在看到了/ dev / ttyUSB0,因此看起来很有可能“正常工作”。
骗子

安装pyserial并使用示例miniterm时,我可以看到设备中的数据:)
Swinders

4

PL-2303支持良好,它将显示为/dev/ttyUSBx。不需要驱动程序。像读取任何普通串行端口一样读取它。我没有使用Python,但是在C ++中,我以非阻塞模式打开()它,选择()以查看是否有要读取的数据,然后执行一个read()。


4

下载pySerial(https://pypi.python.org/pypi/pyserial

wget http://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz?raw=true -O pyserial-2.7.tar.gz
tar -xzf pyserial-2.7.tar.gz
cd pyserial-2.7
sudo python setup.py install

您可以通过以下方式检查ttyUSB的可用性

ls -ltr /dev|grep -i ttyUSB

查看串行输出使用

tail -f /dev/ttyUSB<NUMBER FROM ABOVE>

突破crtl + c

创建一个testserial.py文件粘贴此代码

#!/usr/bin/python
from time import sleep
import serial

# Establish the connection on a specific port
ser = serial.Serial('/dev/ttyUSB0', 9600) 

x = 1 while True:
       print ser.readline() # Read the newest output 
       x += 1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.