树莓派3B 设置通用(UART)串口的方法

时间:2024-03-04 12:51:37

以下转载于

https://blog.csdn.net/berryfish/article/details/60147631

去年入手了一个树莓派3B,和很多人一样,在使用串口时遇见了问题。因为新的树莓派增加了蓝牙功能,而这个功能恰好占用了我们想要使用的串口,并且这种占用是默认的。因此,我们需要关闭蓝牙功能更改串口配置。我找寻了很多网上的资料及教程,但可能由于我是一个十足的新手,尝试操作了很多不太完整的资料或步骤后都没有取得成功。最后,我在各种帖子或博客中汲取经验,总结出来了一个完整的操作步骤。主要参考的博主原文链接在此:

http://www.briandorey.com/post/Raspberry-Pi-3-UART-Boot-Overlay-Part-Two

下面我将针对【树莓派3B】这个型号,分享串口配置过程给大家,希望能对新人有所帮助。

 

一、前言

在具体进行串口配置之前,我想提醒大家本文适用的基本情况

1、为树莓派3B安装好系统,系统可以在其官网下载。本文中我使用的是 2016-09-23-raspbian-jessie 的版本;

2、我是用笔记本电脑实现对树莓派的直接连接,即用一根网线的方法,具体参考http://shumeipai.nxez.com/2013/10/15/raspberry-pi-and-a-network-cable-directly-connected-laptop.html;

3、对于树莓派串口进行设置,是因为我想用树莓派与外部设备连接,即将串口设置为通用串口

 

二、具体步骤

1、关闭板载蓝牙功能

首先,打开你的Terminal,输入一下语句:

   sudo systemctl disable hciuart
然后,编辑文档/lib/systemd/system/hciuart.service,命令如下:

 

 

   sudo nano /lib/systemd/system/hciuart.service
将文档中所有的 "ttyAMA0"改成"ttyS0",总共要修改两处,修改好以后保存退出。

 

2、恢复串口使用并设置为通用串口

首先,编辑文档 /boot/config.txt,命令如下:

   sudo nano /boot/config.txt
在文档的末尾,添加语句:
    dtoverlay=pi3-miniuart-bt
注意:该语句中的"pi3-miniuart-bt"是在文件夹 /boot/overlays 中可以找到的。如果没有,你可以下载一个"pi3-miniuart-bt-overlay"文件并将其拷贝至/boot/overlays文件夹中,并且将上面的语句更改为: dtoverlay=pi3-miniuart-bt-overlay 即可,具体可以参考该作者:http://ukonline2000.com/?p=880
接着,我们编辑文档 /boot/cmdline.txt,命令如下:
    sudo nano /boot/cmdline.txt
将文档内容用以下内容完全替换(具体操作时是删除原文档中多余的语句):
dwc_otg.lpm_enable=0  console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4  elevator=deadline fsck.repair=yes   rootwait
这里我们要注意:该替换内容是针对于设置通用串口的,这个内容实际上是关闭了serial console,因为只有这样方可使串口变为通用,即可以使树莓派连接外部设备。如果你是想用串口连接、登录以及控制树莓派,则需要enable seiral console,具体方法可以参考我在开头给出的链接。

 

最后,我们依次执行以下命令完成所有配置并重启:

    sudo apt-get update

    sudo apt-get upgrade

    sudo reboot
完成以上步骤后,我们现在可以通过"ttyAMA0"与外部设备进行连接了。
三、测试串口

 

在这个部分,我将使用笔记本电脑和树莓派连接,从而达到测试串口是否可以正常使用的目的。其中,电脑需要使用USB转TTL模块来实现与树莓派的连接。

1、电脑端

我的电脑系统为win10,使用的USB转TTL模块型号为CP2102,该模块的驱动程序可以在CSDN上找到并下载。安装好驱动后,就可以直接将模块插入电脑USB接口,在电脑的“设备管理器”中我们可以看到“端口”这一选项,点开后会看到CP2102设备并显示其端口号(例:我的端口号是COM3),在设备处单击右键并选择“属性”,若可以看见其“运转正常”,则证明模块驱动安装成功并且可以正常使用。那么接下来我们就可以对其进行具体的“端口设置”,将其波特率设置为115200或9600均可,其他选项不变。最后,我们需要下载一个“串口调试助手”作为电脑的串口终端调试软件。

2、树莓派端

首先,打开树莓派的Terminal,下载一个调试时可用的实用工具:minicom,命令如下:

    sudo apt-get install minicom
在minicom中我们可以对串口进行基本的配置,为了可以将配置保存为默认设置,我们需要进入root权限才可以。因此,我建议在更改minicom设置之前,先进入root,命令如下:
    su root
首次进入时会要求你设置密码。输入好密码后,就是进入root的状态了。

 

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

    minicom -s
在弹出的菜单中选择“Serial port setup”,接着,我们可以通过键入不同的字母来对这些选项进行更改。我们需要将串口更改为/dev/ttyAMA0 ,然后将波特率更改为115200或者9600(保证与所连接的外部设备的波特率相同即可),并且保证最下面的两个选项均为:NO。最后,单击回车键回到上一级菜单,并选择“Save as df1”选项,这样就可以把刚才的配置改为minicom的默认配置。配置好以后我们可以退出minicom了。

 

 

在完成了以上的准备工作以后,现在我们可以开始对串口进行具体的测试了。首先,将USB转TTL模块与树莓派GPIO口连接,将模块的TXD与树莓派的RXD连接,将模块的RXD与树莓派的TXD连接,将模块与树莓派的GND相互连接。注意,连接的时候仅连接上述三种接口即可,不要连接电源口,树莓派使用自己的外部电源,否则容易因为电压不稳定而烧坏板子。连接好以后,将模块插入电脑,接通树莓派电源。打开电脑端的“串口调试助手”,选择好端口号(在“设备管理器”中可以查看),然后点击菜单栏中的“播放”键以表示连接开始,与此同时,我们在树莓派的Terminal中使用命令打开minicom:

 

      sudo minicom
打开后,可以随机输入,此时你会在电脑端的“串口调试助手”中发现刚刚发送的信息,反之,你也可以在电脑端输入并发送,并在树莓派中看见。

 

阅读更多