与Raspberry pi的串行通信

Ran*_*ndu 3 serial-communication raspberry-pi

我们如何使用带有python脚本的raspberry pi进行串行通信,以便将数据发送/接收到我的笔记本电脑?如果是,我们可以使用RS232电缆直接连接到树莓派上的TX/RX端口吗?如果是,必须从RS232电缆使用哪些引脚?如果有人可以发布示例python脚本,那将是完全有用的吗?

由于我的第一个目标是向/从树莓派发送/接收数据到笔记本电脑,我在两端使用RS232到USB线连接到笔记本电脑以及树莓派.

Cag*_*men 5

RS-232/RS-485到PC和USB到PC

适用于RS-232

1)下载Putty.

2)购买串行端口RS232到TTL转换器模块和用于PC的RS-232串行电缆.

3)按照此链接与微控制器或其他外设连接的步骤进行操作.实际上阅读整个事情是为了更好地理解.

4)用3.3V(引脚1)或5.0V(引脚2)为转换器模块供电,将模块的Rxd引脚连接到Rpi上的Rxd(引脚8),将Txd引脚连接到Rpi上的Txd(引脚10).

5)将RS-232(从PC)电缆连接到转换器模块

现在您已准备好在Python中进行一些编码.但在此之前,请确保您拥有名为serial for python 的库来创建通信.您可以通过键入sudo apt-get install python-serial轻松地通过终端获取它.您还将看到代码中的波特率为7200.根据同步情况,它可能会更少或更多.还要确保putty和COM1中的波特率相同,这是RS-232连接到PC的端口.您可以在Windows中从设备管理器进行检查和设置.顺便说一下,超时是您收到的每条消息之间的时间间隔.

如果您无法从空闲运行代码(某些库发生这种情况),请在终端中执行.为此,转到保存python代码并键入python name.py的文件夹.

    import serial
    import time


    def readlineCR(port):
        rv = ""
        while True:
        ch = port.read()
        rv += ch
        if ch == '\r' or ch == '':
             return rv


    port = serial.Serial("/dev/ttyAMA0", baudrate = 7200, timeout = 2)

    while True: 
         rcv = readl?neCR(port)
         port.write("I typed: " + repr(rcv))
         print(rcv)
Run Code Online (Sandbox Code Playgroud)

适用于USB串口转PC

你有两个选择

首先,您可以购买用于RS-232/RS-485的USB加密狗,这样就不会使用GPIO引脚.但最好是为所有鼠标,键盘和加密狗安装一个USB集线器.

第二个也更容易,您可以购买FTDI USB转TTL转换器并使用GPIO与Rpi进行串行通信.这个代码与上面的代码完全相同.连接这很容易.

模块 - Rpi

Txd - > Txd

Rxd - > Rxd

Gnd ---> Gnd