跑跑啦航模

树莓派 4 UART 多串口配置与通信

相比树莓派零、1、2 以及 3 的双串口,树莓派 4 中新增了 4 个 PL011 串口,共计有 6 个 UART。

大多数描述树莓派 4 串口的文章,开头都是禁用蓝牙。这个做法针对树莓派 0 到 3 是必须的,因为本身串口不够用。但对树莓派 4 来说并不需要,因为有额外 4 个串口可以利用,默认配置好的两个串口,一个用于蓝牙,另一个是 miniUART 可以保留设置。

先看如何配置。执行 dtoverlay 杠 a 竖线 grep uart 可以列出所有可用串口。查看特定串口的信息,用 dtoverlay 杠 h uart2。GPIO 与 UART 的对应关系是,0 到 3 对应 UART2,4 到 7 对应 UART3,8 到 11 对应 UART4,12 到 15 对应 UART5。

配置开启串口很简单。编辑 boot 下的 config.txt 文件,在结尾添加 dtoverlay 等于 uart2 到 uart5 的四行。保存退出,重启后运行 ls 斜杠 dev 斜杠 ttyAMA 星号,可以看到出现了 ttyAMA0 到 ttyAMA4 共五个串口设备。

各 UART 串口与 GPIO 的对应关系是,GPIO14 和 15 是 UART0 的 TX 和 RX。UART2 对应 GPIO0 和 1。UART3 对应 GPIO4 和 5。UART4 对应 GPIO8 和 9。UART5 对应 GPIO12 和 13。

测试方法很简单。用跳线帽将 UART2 的 TXD 和 RXD 短接,进入 Python3 环境,导入 serial 库,打开 ttyAMA1 设备,写入一串字符,再读取出来。如果能正常收发,说明串口工作正常。

还可以测试串口间通信。将 UART2 的 TXD 连接 UART3 的 RXD,UART3 的 TXD 连接 UART2 的 RXD。然后在两个串口之间相互发送消息,验证通信是否正常。

更多树莓派教程和配件,欢迎访问跑跑啦航模官网,或淘宝店跑跑啦航模。