今天要說說樹莓派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= console=serial1, console=tty1 root=/dev/mmcblk0p2 kgdboc=serial1, 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= console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait
退出并儲存檔案。
sudo reboot
這個時候我們的序列槽就可以使用了,序列槽的裝置号為
/dev/ttyAMA0