樹莓派3 串列埠使用 raspberry pi 3B+ uart boot overlay(最全樹莓派串列埠使用)
今天要說說樹莓派3的UART串列埠的使用問題,該串列埠問題的官方反饋及回覆請參考這兩篇官方博文http://www.briandorey.com/post/Raspberry-Pi-3-UART-Boot-Overlay-Part-Two
對於樹莓派3 B+ 來說,他的uart 功能有三種: 1、內部藍芽使用 2、控制終端使用 3、與其他裝置進行串列埠通訊;
然而 樹莓派 3 確只提供一個硬體 uart,對應硬體介面 p14-TX/P15-RX。所有樹莓派3 的串列埠只能是魚與熊掌不能兼得了。
樹莓派 官方系統 Raspbian Jessie releases 預設串列埠是給藍芽使用。如果想讓串列埠作為控制終端除錯口即 serial console ,則需要對系統配置進行修改,關閉藍芽並且對映 pl011 UART 到p14和p15
一、使能serial console步驟如下:
srep1:安裝系統並配置系統
Raspbian Jessie releases 系統安裝到sd卡上(其他系統沒有測試),相信看到該博文的你這一步肯定已經完成了。 配置系統: sudo raspi-config
執行:Expand filesystem and enable serial on advanced page exit and reboot
sudo apt-get update
sudo apt-get upgrade
sudo reboot
step2: 修改配置
編輯 /lib/systemd/system/hciuart.server 然後用 ttyS0 替換檔案中的 ttyAMA0
sudo vi / /lib/systemd/system/hciuart.server
替換檔案中的 ttyAMA0
為 ttyS0
step3:設定 Device tree
sudo vi /boot/config.txt
在檔案末尾新增 :
dtoverlay=pi3-miniuart-bt
儲存->退出
step4:使能串列埠終端 serial console
編輯 /boot/cmdline.txt 檔案
sudo
vi /boot/cmdline.txt
改變檔案內容為:
dwc_otg.lpm_enable=0 console=serial1,115200 console=tty1 root=/dev/mmcblk0p2 kgdboc=serial1,115200 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
儲存上述檔案並重啟系統
sudo reboot
這個時候,你就可以用串列埠登入樹莓派並控制輸入輸出了;pc端串列埠配置為: 115200 8n1(8位,沒有校驗位,1位停止位)
二、設定串列埠為通用串列埠與外部裝置通訊
如果你想把串列埠設定為通用串列埠,那就要關閉 serial console了。具體步驟如下:
在完成上面前3個step前提下,編輯 /boot/cmdline.txt 檔案
sudo /boot/cmdline.txt
修改檔案中的內容為:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait退出並儲存檔案。
sudo reboot
這個時候我們的串列埠就可以使用了,串列埠的裝置號為 /dev/ttyAMA0
串列埠測試:
將串列埠通過 usb-ttl 連線到pc ,在PC端開啟串列埠除錯助手,串列埠設定為 115200 8n1
我們可以使用樹莓派下 minicom 進行測試
首先安裝 minicom : sudo apt-get install minicom
然後開啟minicom : sudo minicom -D /dev/ttyAMA0 -b115200
通過 鍵盤 ctrl-a-> e 來切換顯示和不顯示輸入。
就可以實現樹莓派和pc 通過串列埠進行通訊,波特率也可以修改為 9600 和38400.