树莓派5+Ubuntu24.04 LTS串口通信 保姆级教程
【背景】
各位,除了树莓派4B之外,我又搞了个树莓派5, 装的也是Ubuntu24.04 LTS服务器版。装系统的方法跟树莓派4B一样,没什么好说的。装完了系统之后,我就想装个wiringPi来试试串口,却发现这个树莓派5的串口和树莓派4B的串口有点不一样。
树莓派4B的串口,可以参考我以前写的保姆级教程
树莓派4B+Ubuntu24.04 LTS串口通信 保姆级教程_树莓派4b ubuntu串口-CSDN博客
【保姆级教程】
下面就来说说这个不一样。
1. 首先,我还是跟树莓派4B一样,编辑了/boot/firmware/config.txt如下:
dtoverlay=uart2
dtoverlay=uart3
dtoverlay=uart4
dtoverlay=uart5
reboot后,ls /dev/ttyAMA*
得到的是:
/dev/ttyAMA10 /dev/ttyAMA2 /dev/ttyAMA4
没有/dev/ttyAMA3 /dev/ttyAMA5
我就奇了怪了,到处搜索。。。
2. 原来,树莓派5的/boot/firmware/config.txt要这样改
dtoverlay=uart1-pi5
dtoverlay=uart2-pi5
dtoverlay=uart3-pi5
dtoverlay=uart4-pi5
这时, 用ls /dev/ttyAMA* 之后,得到的结果是
/dev/ttyAMA1 /dev/ttyAMA10 /dev/ttyAMA2 /dev/ttyAMA3 /dev/ttyAMA4
多了个/dev/ttyAMA10, 这是树莓派5 debug用的串口。
3. 树莓派4B和树莓派5的串口的对应关系
uart0 -> uart10, 即 /dev/ttyAMA0 -> /dev/ttyAMA10
uart2 -> uart1-pi5, 即 /dev/ttyAMA2 -> /dev/ttyAMA1
uart3 -> uart2-pi5, 即 /dev/ttyAMA3 -> /dev/ttyAMA2
uart4 -> uart3-pi5, 即 /dev/ttyAMA4 -> /dev/ttyAMA3
uart5 -> uart4-pi5, 即 /dev/ttyAMA5 -> /dev/ttyAMA4
4. 结果检验
还是将GPIO0 和 GPIO1, 用一根线连起来
已经通信成功了。
5. 大功告成,亲个嘴儿。