【背景】
各位,除了樹莓派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. 大功告成,親個嘴兒。?