412 字
2 分钟
树莓派4B 配置UART

前言#

配置方法来源:Raspberry Pi Documentation


树莓派4B#


基本信息#

输入如下指令,查看树莓派4B具有的所有引脚:

Terminal window
dtoverlay -a | grep uart

输入如下指令,查看特定串口的信息:

Terminal window
dtoverlay -h uart0

详细串口信息参考下表:

nametypetxdrxdLinux device
UART0PL011GPIO 14GPIO 15/dev/ttyAMA0
UART1mini UARTGPIO 14GPIO 15/dev/ttyS0
UART2PL011GPIO 0GPIO 1/dev/ttyAMA1
UART3PL011GPIO 4GPIO 5/dev/ttyAMA2
UART4PL011GPIO 8GPIO 9/dev/ttyAMA3
UART5PL011GPIO 12GPIO 13/dev/ttyAMA4

启用 UART2~5#

输入如下指令,打开配置文件:

Terminal window
vim /boot/config.txt

在文件中增加如下内容:

Terminal window
dtoverlay=uart2

:wq 保存后,重启树莓派。

输入如下指令,查看 UART2 的情况:

Terminal window
/dev/ttyAMA*


启用 UART0#

默认情况下,UART 被分配给 Linux Console。如果需要将 UART 使用到其他用途,需要重新配置操作系统:

  • 输入指令 sudo raspi-config,启动 raspi-config:
  • 选择 3 - Interface Options
  • 选择 I6 - Serial Port
  • 选择 ‘No’,Would you like a login shell to be accessible over serial?
  • 选择 ‘Yes’,Would you like the serial port hardware to be enabled?

保存后,重启树莓派。

由于在树莓派3B后,官方将 PL011 分配给了蓝牙模块,所以只能在 保留蓝牙,启用 Mini UART禁用蓝牙,启用 PL011 中,两者选其一。

方法1:保留蓝牙,启用 Mini UART

/boot/config.txt 中增加如下内容:

enable_uart=0

保存后,重启树莓派。

方法2:禁用蓝牙,启用 PL011

/boot/config.txt 中增加如下内容:

enable_uart=1
dtoverlay=disable-bt

保存后,重启树莓派。


UART 测试#

import serial
uart2 = serial.Serial(port="/dev/ttyAMA0", baudrate=9600)
uart2.write("Hello World".encode("utf-8"))
uart2.read(11)


PL011 和 Mini UART 的区别#

Mini UART 没有流量控制,在高波特率下容易丢失数据。

与 PL011 相比,Mini UART 具有以下缺陷:

  • 无中断检测
  • 无帧错误检测
  • 无奇偶校验位
  • 无接收超时中断
  • 无 DCD、DSR、DTR 或 RI 信号

树莓派4B 配置UART
https://fuwari.vercel.app/posts/嵌入式/树莓派/树莓派4b-配置uart/
作者
Asuwee
发布于
2023-04-01
许可协议
CC BY-NC-SA 4.0