树莓派串口的使用

陈拓 chentuo@ms.xab.ac.cn 2020/02/14-2020/02/14

1. 概述

下面的操作要在Putty上进行,如果不熟悉请看《电脑连接树莓派Zero W》https://blog.csdn.net/chentuo2000/article/details/81051308

本文介绍在Raspberry Pi 3、3+,4和Raspberry Pi Zero W上配置串行端口。

上述的几种树莓派包含两个可用于串行通信的UART控制器,也就是常说的串口:mini UART和PL011 UART。默认情况下,mini UART映射到40引脚GPIO连接器的TXD(GPIO 14)和RXD(GPIO 15)上,PL011 UART用于蓝牙模块​​,但是任何一个模块都可以映射到GPIO端口。

树莓派的GPIO引脚有几套编号方案,不要混淆了,可以用下面的命令查看串口对应的GPIO引脚。

gpio readall命令的使用可以参考《树莓派GPIO控制》树莓派GPIO控制_树莓pi gpio-CSDN博客

pi@raspberrypi:~ $ gpio readall

串口对应的物理引脚是Pin8 - GPIO14(TXD)和Pin10 - GPIO15(RXD)。

要想改变物理引脚的映射关系也是可以的,在《树莓派Zero W添加音频输出》树莓派Zero W添加音频输出_树莓派zerow电路图-CSDN博客

一文中有详细说明。

在Linux中可以使用/dev/ttyS0设备访问mini UART端口。Mini UART串口的一个问题是其波特率与VPU内核频率相关,而VPU频率会随处理器负载变化,因此UART串口的波特率也会变化,这将引起问题。

另外,mini UART串口的FIFO缓冲区比PL011 UART小,这可能会导致波特率较高时使丢失字符。

PL011 UART串口使硬件实现的未连接到VPU核心频率,这意味着无论VPU速度如何,波特率都保持不变。PL011 UART串口器还包括mini UART串口不具备的其他功能,例如成帧错误检测,中断检测,接收超时中断和奇偶校验位支持。

PL011 UART串口默认用于蓝牙/无线模块,在需要数据连接可靠的情况下,可以使用PL011 UART串口,如果同时需要使用蓝牙模块,可以使用mini UART串口。

2. 使用PL011 UART串口通信

2.1启用树莓派的mini UART串口

默认情况下mini UART用于登录连接控制树莓派,比如用Putty,这时mini UART不能用于通信,所以先要启用mini UART的通信功能。

  • 查看默认的映射关系

查看设备文件:ls -l /dev

这是mini UART没打开串口功能的情况,只有serial1(蓝牙)默认使用的是PL011 UART (ttyAMA0)硬件串口。

  • 打开mini UART串口

执行sudo raspi-config命令:

选择Interfacing Options

选择serial

选择“否”,禁用串口登录功能,将串口用于通信。

选择“是”,启用串口硬件。

再查看设备文件:

serial0(GPIO串口已启用)使用的是ttyS0设备(mini串口),serial1(蓝牙)使用的是ttyAMA0设备(硬件串口PL011)。

2.2交换映射关系

serial0(mini UART)是GPIO引脚对应的串口,serial1(PL011 UART)是蓝牙对应的串口。想要通过树莓派的GPIO引脚进行稳定的串口通信,需要交换串口的映射关系。

对于2016年3月18日之后的Raspbian Linux版本中,有一个名为pi3-miniuart-bt的设备树文件用于交换串口映射。用下面的命令查看:

ls -l /boot/overlays/pi3-miniuart-bt*

随版本不同有文件/boot/overlays/pi3-miniuart-bt-overlay.dtb或者文件/boot/overlays/pi3-miniuart-bt.dtbo。

启用该文件只需在/boot/config.txt文件末尾添加一行代码。

编辑该文件:

sudo  nano  /boot/config.txt

在末尾添加一行代码:

dtoverlay=pi3-miniuart-bt

修改完以后重启系统:

sudo reboot

再查看串口映射关系:

已经换过来了。

查看串口对应的GPIO引脚。用下面的命令查看所有引脚的状态:

pi@raspberrypi:~ $ gpio readall

串口对应的引脚是Pin8(TXD, GPIO14)和Pin10(RXD, GPIO15)。

现在就可以在/dev/ttyAMA0上访问UART串行端口了。

3. 测试

3.1安装串口工具minicom

sudo apt-get install minicom

查看版本:

执行以下命令在minicom中对串口进行配置:

sudo minicom –s

在弹出的菜单中选择“Serial port setup”,将默认设置

改成:

回车:

保存Save setup as df1,退出Exit from Minicom。

3.2串口回环测试

  1. 用杜邦线连接Pin8(TxD)和Pin10(RxD)引脚
  2. 运行sudo minicom

Ctrl+A 按下E选择回显。

输入Raspberry,可以看到回显:

成功!

常用命令:

Ctrl+A W:当显示的内容超过一行之后自动换行

Ctrl+A C:清屏

Ctrl+A X:退出minicom

参考文档:

  1. 树莓派3B和3B+的串口使用
    树莓派3B和3B+的串口使用(附图)_树莓派3b 3b+-CSDN博客
  2. Raspberry Pi 3, 4 and Zero W Serial Port Usage
    Using the serial port on Raspberry Pi OS Bookworm

LabVIEW是一款用于控制和测量领域的开发环境,可以用于开发各种实时和非实时的应用程序。而树莓派则是一款小型的单板计算机,具有丰富的输入输出接口和功能。在LabVIEW中,我们可以通过串口树莓派进行通信。 首先,我们需要在树莓派上配置串口。可以通过修改树莓派的配置文件,启用并设置串口参数,如波特率、数据位、停止位等。然后,我们可以在LabVIEW中创建一个串口对象,指定串口的名称和参数。通过这个串口对象,我们可以进行串口的打开、关闭、发送和接收等操作。 在LabVIEW中,我们可以使用串口通信的相关函数和工具集,如VISA(Virtual Instrument Software Architecture)来进行串口操作。通过这些函数,我们可以设置串口的属性,例如波特率、数据位、停止位等,并执行读取和写入操作来进行数据的收发。 例如,我们可以使用VISA的VISA Configure Serial Port函数设置串口的参数,然后使用VISA Read和VISA Write函数分别进行数据的读取和写入。在LabVIEW中,可以将这些函数组合在一起,形成串口通信的程序流程图。 另外,树莓派上也可以使用第三方库或工具,如PySerial,来进行串口通信。通过在LabVIEW中调用Python脚本,我们可以实现与树莓派串口通信。 总之,LabVIEW可以很好地与树莓派进行串口通信。通过合理配置树莓派串口参数,并在LabVIEW中使用相关的串口函数,我们可以实现稳定可靠的数据收发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨之清风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值