玩转树莓派串口
玩转树莓派串口
2024年2月:WiringPi已弃用,新版本系统上已经不能通过 gpio readall
来查看GPIO信息
树莓派 2 代和 3 代有两个 UART,分别是 UART0 和 UART1。树莓派 4 有四个额外的 UART 接口,但只有 UART0 和 UART1 是默认启用的(GPIO 引脚 14 和 15)。其他的 UART 可以通过修改设备描述树启用。
展示所有串口
命令:
1 | $ dtoverlay -a | grep uart |
输出如下
1 | neolux@Neoluxa:~ $ dtoverlay -a | grep uart |
- 由于使用的是 树莓派 4b,所以不能使用带有
pi5
字样的串口
查看特定串口信息
命令:
1 | $ dtoverlay -h uart2 |
输出如下:
1 | neolux@Neoluxa:~ $ dtoverlay -h uart2 |
该命令会展现 GPIO 与 UART 串口的分配:GPIO 0-3 对应 UART2
其中,GPIO2,3是CTS/RTS口,而GPIO0,1是TX,RX
方便记忆,序号小的两个GPIO中,小的是TX,大的是RX
启用串口2~5
使用 vim 编辑 /boot/config.txt
@2024/02/05 /boot/config.txt
文件被移动到了 /boot/firmware/config.txt
1 | $ sudo vim /boot/config.txt |
在文件结尾添加以下内容
1 | dtoverlay=uart2 |
保存退出后重启
重新启动后,检查 /dev
目录下,查看是否生效
1 | $ ls /dev/ttyAMA* |
结果显示如下:
1 | neolux@Neoluxa:~ $ ls /dev/ttyAMA* |
测试串口
通过上述命令查看串口对应的 GPIO,以串口2为例
1 | GPIO0 -> TXD2 -> /dev/ttyAMA2 |
如果不知道针脚和GPIO编号的对应关系,可以输入 pinout
命令查看
自接收测试
连接同一个串口的 TX和RX后,运行 Python
输入以下参考测试代码
1 | from serial import Serial |
运行结果如下
1 | from serial import Serial |
连接电脑测试
使用USB转TTL连接电脑后,树莓派运行Python,测试发送和接收
串口终端登录
串口1 可以作为串口TTY用于连接
在 raspi-config
中设置 Interface Options > Serial Port
设置成 Yes ,然后重启
使用 USB转TTL 连接电脑与树莓派的串口1(P14-TX,P15-RX),之后在设备管理器中找到树莓派连接的串口(本次使用COM5)
在SSH软件中设置好之后就可以连接了