树莓派4B 六个串口的开启与使用

树莓派4B 六个串口的开启与使用

@(树莓派学习笔记)

串口介绍

树莓派4B有六个串口(一个 mini UART和五个 PL011),默认情况下UART2~UART5禁用
树莓派4B 六个串口的开启与使用_第1张图片

Raspberry Pi OS 上一般有一个主串口(primary UART)和一个辅助串口(secondary UART)
通常主串口存在于GPIO连接器上但辅串口不存在
设备名称映射:
UART0: /dev/ttyAMA0
mini UART(UART1): /dev/ttyS0
UART2: /dev/ttyAMA1
UART3: /dev/ttyAMA2
UART4: /dev/ttyAMA3
UART5: /dev/ttyAMA4

primary UART: /dev/serial0
secondary UART: /dev/serial1

树莓派4B 六个串口的开启与使用_第2张图片

mini UART 和 PL011的区别

树莓派4B 六个串口的开启与使用_第3张图片

树莓派多串口启用

展示所有串口
dtoverlay -a | grep uart
查看特定串口信息
dtoverlay -h uart2
查看主/辅串口映射
ls /dev -al

默认情况下,主 UART 分配给 Linux 控制台。如果希望将主UART用于通信,则必须重新配置Raspberry Pi OS

树莓派4B 六个串口的开启与使用_第4张图片

重启代码
sudo reboot

交换主/辅串口映射关系并应用设备树覆盖显式启用所有串口
sudo nano /boot/config.txt
找到enable_uart修改为enable_uart=1
在文件结尾添加

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

Ctrl+O保存文件,Ctrl+X退出

重启后检查是否生效
ls /dev/ttyAMA*
结果应该显示如下
/dev/ttyAMA0 /dev/ttyAMA1 /dev/ttyAMA2 /dev/ttyAMA3 /dev/ttyAMA4

各串口与GPIO的对应关系

UART0 (ttyAMA0):
GPIO14 = TXD0
GPIO15 = RXD0

UART02(ttyAMA1):
GPIO0 = TXD2
GPIO1 = RXD02

UART3 (ttyAMA2):
GPIO4 = TXD3
GPIO5 = RXD3

UART4 (ttyAMA3):
GPIO8 = TXD4
GPIO9 = RXD4

UART5 (ttyAMA4):
GPIO12 = TXD5
GPIO13 = RXD5

注意:GPIO引脚的编号不是按数字顺序排列的。GPIO 引脚 0 和 1 存在于电路板上(物理引脚 27 和 28),但保留供高级使用

经测试,ttyAMA0、ttyAMA1、ttyAMA2、ttyAMA4能正常使用
ttyAMA3无法使用,原因和解决办法见我的另一篇博客

你可能感兴趣的:(树莓派学习笔记,单片机,嵌入式硬件)