树莓派4共有6个串口,1个是mini UART(UART1)及其他5个PL011 UARTs (UART0, UART2, UART3, UART4 &UART5),其中mini UART没有单独的时钟芯片,受CPU运行情况的影响,会有不稳定现象,建议使用其他串口。

1、树莓派的串口管脚定义

UART0 GPIO14 GPIO15 这个是硬件串口,默认当成串口控制台使用

UART1:mini UART 不建议使用

其他可以使用的就是UART2,UART3,UART4,UART5了

树莓派4的GPIO部分管脚定义如下图

引用树莓派实验室的一张图,根据BCMP编码(即GPIO)找到对应的物理管脚

然后就可以用杜邦线将物理管脚引出去做串口对接了。

2、串口设置

首先查看系统中所有的串口

dtoverlay -a | grep uart

3、配置开启串口2~5

编辑配置文件

sudo vim /boot/firmware/config.txt

在文件末尾添加

dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5

保存退出,重启生效

4、查看设置

ls /dev/ttyAMA*

UART 串口与 GPIO(BCM编码) 对应关系

UART0: GPIO14 = TXD0 -> ttyAMA0     GPIO15 = RXD0 -> ttyAMA0
UART2: GPIO0  = TXD2 -> ttyAMA1     GPIO1  = RXD2 -> ttyAMA1
UART3: GPIO4  = TXD3 -> ttyAMA2     GPIO5  = RXD3 -> ttyAMA2
UART4: GPIO8  = TXD4 -> ttyAMA3     GPIO9  = RXD4 -> ttyAMA3
UART5: GPIO12 = TXD5 -> ttyAMA4     GPIO13 = RXD5 -> ttyAMA4

5、测试

首先拿UART2进行环回测试:

rpi@ubuntu:~$ python3
Python 3.9.7 (default, Sep 10 2021, 14:59:43)
[GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import serial
>>> uart2 = serial.Serial(port="/dev/ttyAMA1", baudrate=9600)
>>> uart2.write("Hello World".encode("gbk"))
11
>>> uart2.read(11)
b'Hello World'
>>> 

还可以把UART2和UART3串接测试,将 TXD2 连接 RXD3 即 GPIO0 与 GPIO5 相连;将 TXD3 与 RXD2 连接即 GPIO4 与 GPIO1 相连。

GPIO0  = TXD2 -> ttyAMA1
GPIO4  = TXD3 -> ttyAMA2GPIO1  = RXD2 -> ttyAMA1
GPIO5  = RXD3 -> ttyAMA2

打开一个python的命令行窗口,输入下面语句测试:

import serial
uart2 = serial.Serial(port="/dev/ttyAMA1", baudrate=115200)
uart3 = serial.Serial(port="/dev/ttyAMA2", baudrate=115200)
uart2.write("send Msg from UART2...".encode("gbk"))uart3.read(22)uart3.write("send Msg from UART3...".encode("gbk"))uart2.read(22)

成功之后,将UART2和UART3之间的线断开,再运行以上命令,已经无法接受发送数据。

树莓派4的串口启用设置相关推荐

  1. 树莓派3B 初始化 必须的设置

    树莓派3B  初始化  必须的设置 1.1扩展系统空间 因为内存卡还有很多空间没有分配,第一步自然是把这些空间分配了 在SSH控制台输入: sudo raspi-config 第一步: 第二步: 然后 ...

  2. 树莓派3B+:串口通讯

    树莓派3B+:串口通讯 背景 一.树莓派串口通讯是什么? 二.使用步骤 1.树莓派串口知识 2.查看当前的串口使用及映射关系 3.释放串口ttyAMA0 3.代码控制串口,验证是否可用 三.minic ...

  3. 电脑与树莓派与stm32f4串口通信

    电脑与树莓派与stm32串口通信 stm32设置 树莓派代码 stm32设置 // 核心代码,不能运行 void M1_PID(float top); void upmada(void); typed ...

  4. 树莓派与pixhawk串口通信

    一.Pixhawk部分 1.读取数据测试 步骤: 在Firmware/src/modules中添加一个新的文件夹,命名为rw_uart 在rw_uart文件夹中创建CMakeLists.txt文件,并 ...

  5. ft4232树莓派linux扩展串口,树莓派Linux串口编程实现自发自收

    串口是计算机上一种非常通用设备通信的协议,常用PC机上包含的是RS232规格的串口,具有连接线少,通讯简单,得到广泛的使用. Linux对所有设备的访问是通过设备文件来进行的,串口也是这样,为了访问串 ...

  6. linux busybox 操作串口,busybox分析--10.串口的设置

    1. 8N1 8:表明8位数据位 N: 表明NO,既无奇偶校验 1:表明一位停止位 2. 代码中关于串口的设置 #include #include #include #include #include ...

  7. 在Ubuntu22.04条件下,如何打开树莓派4B的串口

    打开串口 树莓派4B一共有6个串口,之前的版本只有2个串口.这6个串口中,有5个时硬件串口,还有个mini串口,这5个硬件串口在我们需要使用外设时.但是,默认情况下,5个默认串口只有1个被启用了,剩下 ...

  8. 【树莓派4B】串口配置

    [树莓派4B]串口配置 树莓派环境 串口信息 硬件串口(/dev/ttyAMA0) mini串口(/dev/ttyS0) 串口配置 打开serial0 调换serial0和serial1的映射 测试 ...

  9. 树莓派(raspberry)启用root账户

    树莓派(raspberry)启用root账户 今天玩树莓派,需要安装些东西,老是sudo感觉不方便于是想直接用root.咦···?默认不是空密码?试下密码raspberry.还不对.那是神马?? 论他 ...

最新文章

  1. [转]FPGA的GTP信号PCB布线要点
  2. rabbitmq3.5.1 原理和集群安装
  3. javascript 中的call和apply
  4. OpenCASCADE:Foundation Classes之异常
  5. php分页实例下载,PHP文件操作实例总结【文件上传、下载、分页】
  6. 北京修复宕机故障之旅
  7. python程序分析,用Python编写分析Python程序性能的工具的教程
  8. matlab d=sqrt((i-m)^2+(j-n)^2);,硕士研究生《数字图像处理》作业
  9. 定义“移动互联网”的三篇文章
  10. samba配置过程(附网络凭据的解决方法)
  11. 为什么说java是具有跨平台性
  12. 【小米小爱老师4G网络尊享版使用总结】界面|设置|安装|输入_摘要频道_什么值得买...
  13. 软件测试中80/20原则
  14. 品牌和爱情,原理是一样的
  15. java+es+nested_Elasticsearch中的关联查询。Nested类型介绍及查询原理。。
  16. VBA---打开excel
  17. 吴恩达视频-第一门课第2周2.7、2.8节-计算图与使用计算图求导数
  18. 找到可靠的游戏外包开发公司
  19. 图形学基础笔记II:多边形光栅化算法和显卡三角形光栅算法
  20. ⚡王者农药皮肤图片获取!⚡

热门文章

  1. 游戏音效中环境音效分类
  2. (毕业设计)python个人健康自助记录查询系统 152015
  3. RegularExpression 2
  4. 减数游戏(优先队列+普通队列)
  5. html parent()属性,HTML DOM parentElement用法及代码示例
  6. 国内食糖行业数据浅析
  7. sql2008备份集中的数据库备份与现有的xxx数据库不同解决方法
  8. 数据库大会参会记(1)---结识新朋友,不忘老朋友~~
  9. 焦虑的人,一直在进化
  10. python编写会计凭证金蝶_金蝶采购发票如何生成凭证