IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 【树莓派4B】串口配置 -> 正文阅读

[系统运维]【树莓派4B】串口配置

树莓派环境

树莓派4B
ubuntu mate20

串口信息

硬件串口(/dev/ttyAMA0)

该串口由硬件实现,有单独的波特率时钟源,性能高、可靠。

mini串口(/dev/ttyS0)

该串口性能低,功能也简单,并且没有波特率专用的时钟源,而是由CPU内核时钟提供。因此mini串口有个致命的弱点是:波特率受到内核时钟的影响。

也就是说,和CPU共用同一时钟,当CPU处理较多任务时,或者低功耗时,你的串口波特率不是稳定的,数据误传、传丢就会成为常态。

注意:树莓派(3/4代)板载蓝牙模块,默认的硬件串口是分配给蓝牙模块使用的,而性能较差的mini串口是分配给GPIO串口 TXD0、RXD0。
请添加图片描述

serial0即GPIO映射的串口(TXD0、RXD0),默认是ttyS0,即mini串口。
serial1即板载蓝牙映射的串口,默认是ttyAMA0,即硬件串口。
我们要做的工作是将两者映射互相交换——serial0映射成ttyAMA0,serial1映射成ttyS0。这样串口就稳定了。

串口配置

打开serial0

终端输入ls -l /dev,发现只有serial1->ttyAMA0,没有serial0的映射。
执行

sudo raspi-config

如果没有安装raspi-config,按照这里安装
在这里插入图片描述
选择Interfacing Options
在这里插入图片描述
选择serial

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

再选择 是,启动串口硬件。

然后执行以下步骤

cd /boot/firmware
sudo gedit config.txt

在这里插入图片描述
注意不是/boot下的config,而是/boot/firmware下的config
打开文件后,找到enable_uart=0这行,把这行用#注释掉。然后在这行下面加一行,enable_uart=1。

然后执行下面的指令

sudo gedit syscfg.txt 

在这里插入图片描述
将里面的enable_uart=0改成enable_uart=1

然后执行reboot重启

sudo reboot 

重启树莓派,再看ls -l /dev , serial0->ttyS0就出现了。

调换serial0和serial1的映射

初始是
在这里插入图片描述
执行以下指令

cd /boot/firmware
sudo gedit config.txt

在这里插入图片描述

在config.txt的结尾加上dtoverlay=disable-bt

然后在终端输入以下命令禁用掉和蓝牙有关的开机启动项

sudo systemctl disable bluetooth

因为蓝?也使?硬件串?,所以我们在 /boot/config.txt??加上 dtoverlay=disable-bt ,ttyAMA0 得以释放,这时候树莓派也?动交换了ttyAMA0和ttyS0,把serial0 分配给了 ttyAMA0 。

映射对换的?的是将硬件串?作?在GPIO接?的Tx Rx上。我这里没有?到蓝?通讯,所以禁?蓝?后也没有再次开启,也没有测试再次开启蓝?通讯是否正常,如果你们那里有?到蓝?通讯,那么进?这?步的时候要谨慎。
修改系统配置?件/boot/config.txt
sudo vi /boot/config.txt
在?件中添加:
dtoverlay=disable-bt

这?有个坑要注意?下:树莓派3的参数值是pi3-disable-bt。在树莓派4B上?pi4-disable-bt,是不?的,有的人说在4B上依旧写pi3-disable-bt后成功了。具体我没有测试。我这里直接写dtoverlay=disable-bt是成功的。

重启树莓派,应该没有蓝牙标志了,serial0和serial1也调换为:

在这里插入图片描述

测试

使用python的pyserial模块即可进行测试

import serial
uart2 = serial.Serial(port="/dev/ttyAMA0", baudrate=9600)
uart2.write("Msg from UART2...".encode("gbk"))
uart2.read(10)

有界面的可以使用cutecom串口工具进行测试

sudo apt-get update
sudo apt-get install cutecom
sudo cutecom

在这里插入图片描述

没有界面的可以采用minicom进行测试

安装minicom

sudo apt-get update
sudo apt-get install minicom
minicom -D /dev/ttyAMA0 -b 115200

其中-D表示选择串口**/dev/ttyAMA0**,-b 设置波特率为115200,此参数可以不用设置,默认115200。

但是提示报错permission denied:
在这里插入图片描述
这是因为权限不够不能打开,因此使用下面的命令提升权限

sudo chmod 777 /dev/ttyAMA0

然后重新调用命令,不会报错:

minicom -D /dev/ttyAMA0 -b 115200

在这里插入图片描述

参考

树莓派4B串口配置
树莓派4B没有serial0或ttyS0,serial0没有映射到ttyS0,serial0和serial1调换映射
树莓派4b串口设置教程(适用于新手)

树莓派4B(Ubuntu mate)没有serial0的问题

树莓派4b串口(UART)使用问题的解决方法 - Ubuntu 21.04
树莓派(十一)树莓派4B ubuntu20.04 UART 多串口配置通信
树莓派4BGPIO串口通讯设置(3B+通用)
树莓派开发笔记(六):GPIO口的UART的使用(串口通讯)
树莓派4B UART串口的配置
树莓派软串口设置+完整示例pigpio猪皮库

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-07 11:29:31  更:2022-05-07 11:31:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 17:40:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码