1. 程式人生 > >樹莓派3 串列埠使用 raspberry pi 3B+ uart boot overlay(最全樹莓派串列埠使用)

樹莓派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.