首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用raspberry pi (型号B+)的USB端口进行串行通信(RS232)吗?

我可以使用raspberry pi (型号B+)的USB端口进行串行通信(RS232)吗?
EN

Stack Overflow用户
提问于 2015-07-29 17:27:03
回答 1查看 2.4K关注 0票数 3

我需要连接一台旧机器(热流)来与raspberry pi (型号B+)接口。

热流设备有一个RS232串口,我想使用RS232串口将其连接到raspberry pi的USB端口(其中电缆的usb端插入pi中,串行端连接到设备上)。我需要用python编写代码。

这个是可能的吗?如果是的话,我该怎么做?任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-29 18:29:10

是。首先,您需要安装吡喃类

然后,在Python中,可以使用以下函数创建连接到端口的串行对象。pi上的usb端口被动态分配一个名称,这些名称可以更改。此函数将使您能够循环遍历每个端口的名称。(多个设备可能无法正常工作)。检查您希望与之通信的设备上的连接设置(波德率、奇偶校验、停止位等),并修改代码以使用这些设置。

代码语言:javascript
复制
import serial

def serialConnect(): 
    serlocations=['/dev/ttyACM', '/dev/ttyACM0', '/dev/ttyACM1','/dev/ttyACM2', '/dev/ttyACM3','/dev/ttyACM4', '/dev/ttyACM5','/dev/ttyUSB0','/dev/ttyUSB1','/dev/ttyUSB2','/dev/ttyUSB3', '/dev/ttyUSB4', '/dev/ttyUSB5', '/dev/ttyUSB6', '/dev/ttyUSB7', '/dev/ttyUSB8', '/dev/ttyUSB9', '/dev/ttyUSB10','/dev/ttyS0', '/dev/ttyS1', '/dev/ttyS2', 'com2', 'com3', 'com4', 'com5', 'com6', 'com7', 'com8', 'com9', 'com10', 'com11', 'com12', 'com13', 'com14', 'com15', 'com16', 'com17', 'com18', 'com19', 'com20', 'com21', 'com1', 'end']
    for device in serlocations:
        try:
            ser = serial.Serial(
                port=device,
                baudrate=9600,
                parity=serial.PARITY_ODD,
                stopbits=serial.STOPBITS_TWO,
                bytesize=serial.SEVENBITS
            )
            print device
            return ser  
        except:
            x=0 
    if device == 'end':
        print "No Device Found"     

ser = serialConnect()
if ser:
    ser.write("TEST")
    ser.timeout=5
    for i in ser.readlines():
        print i
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31707224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档