樹莓派的串列埠配置

2021-08-04 04:51:17 字數 2547 閱讀 9507

在樹莓派3b的外設裡面一共包含兩個串列埠,乙個稱之為硬體串列埠(/dev/ttyama0),乙個稱之為mini串列埠(/dev/ttys0)。硬體串列埠由硬體實現,有單獨的波特率時鐘源,效能高、可靠,mini串列埠效能低,功能也簡單,並且沒有波特率專用的時鐘源而是由cpu核心時鐘提供,因此mini串列埠有個致命的弱點是:波特率受到核心時鐘的影響。核心若在智慧型調整功耗降低主頻時,相應的這個mini串列埠的波特率便受到牽連了,在樹莓派3代中,由於板載藍芽模組,因此這個硬體串列埠被預設分配給與藍芽模組通訊了,而把那個mini串列埠預設分配給了排針引出的gpio tx rx ,下圖為樹莓派3b的引腳圖:

上圖中的txd和rxd就是引出的串列埠,如果我們需要通過uart外接模組,預設情況下必須得使用效能很低的mini串列埠了,而且隨著核心主頻的變化,還會造成波特率的變化導致通訊的失敗,幾乎很難使用。所以我們希望恢復硬體串列埠與gpio 14/15的對映關係,使得我們能夠通過gpio使用高效能的硬體串列埠來連線我們的串列埠裝置。

將樹莓派的硬體串列埠與mini串列埠的預設對映對換:

為了在樹莓派3中通過gpio使用高效能的硬體串列埠,我們必須將分配給藍芽使用的硬體串列埠與分配給io排針的mini串列埠進行對換,這必然會使得藍芽模組的功能受到影響,但還好,藍芽並不是必須的。

首先在樹莓派命令終端中通過命令檢視樹莓派3當前的串列埠對映關係  ls -l /dev/

可以看到這是最開始的對映關係,serial0就是gpio對映的串列埠,此時對應的是mini串列埠。

下面我們就要改變這種對映關係,sudo vim /boot/config.txt 

在該檔案的最後加入一行,dboverlay=pi3-miniuart-bt ,然後儲存檔案後,重啟樹莓派 ls -l /dev,你會看到

串列埠的對映關係發生了改變,你現在已經將硬體串列埠對應到了gpio上了。

前面的步驟已經交換了硬體串列埠與mini串列埠的對映關係,但現在想使用樹莓派外接串列埠模組進行通訊還不行,因為樹莓派io引出的串列埠預設是用來做控制台使用的,它的初衷是為了在沒有網路介面時,通過串列埠對樹莓派進行相關的配置。因此需要禁用這個預設功能,使得串列埠為我們自由使用。

在樹莓派命令視窗中分別通過如下兩個命令停止和禁用串列埠的控制台功能  

sudo systemctl stop [email protected] 

sudo systemctl disable [email protected]  

由於我們前面已經交換了串列埠的對映關係,因此這裡注意是ttyama0。 

然後通過下列指令編輯cmdline.txt檔案  sudo nano /boot/cmdline.txt  然後看到裡面類似如下的內容  

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait  

把console=serial0,115200刪掉,剩下的內容類似如下  dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait

然後重啟樹莓派使修改生效。

下面的內容將是在樹莓派上安裝wiringpi庫了:

在有網路的情況下可以使用git工具,可以輸入以下命令:

sudo apt-get install git-core

來讓系統自動安裝git工具,如果在這個過程中出現了錯誤,嘗試更新軟體

sudo apt-get update

sudo apt-get upgrade

緊接著通過git獲得wiringpi的原始碼

git clone git:

如果需要更新wiringpi

cd wiringpi

git pull origin

否則直接執行./build

會幫你編譯和安裝wiringpi

測試wiringpi是否安裝成功,可以使用gpio -v  

也可以用gpio readall來檢視引腳分布情況。

可以進入到cd wiringpi/example目錄下編譯幾個程式,來使用該庫。

我們也可以使用gpio命令操作樹莓派gpio,下面我們可以gpio命令控制led。

輸入命令:    gpio -g mode 26 out 

設定管腳為輸出模式,-g引數表示是以bcm編號方式,如果去掉這個引數測以wiringpi編號方式,即為25。

輸入命令:    gpio -g write 26 1 設定管腳為高電平,點亮led; 

輸入命令:    gpio -g write 26 0 設定管腳為低電平,熄滅led。

樹莓派串列埠

串列埠使用例程及說明 pyserial api sudo apt get install python serial python m serial.tools.list ports 此命令可以檢視裝置的檔案節點。class serial.serial init port none,baudrate...

樹莓派 預設波特率 樹莓派串列埠配置

插上藍芽模組 以下是樹莓派原理圖 image.png 配置串列埠 首先可以檢視串列埠對映關係 ls l dev image.png 以上是我已經配置完之後截圖的,一開始的話是沒有serial0 ttys0的。先安裝gedit便於修改配置檔案 sudo apt get install gedit 開始...

樹莓派串列埠配置及除錯

修改cinfig.txt檔案 sudo vim boot config.txt 確保enable uart 1 串列埠使用ttys0 dtoverlay pi4 miniuart bt 失能串列埠dtoverlay pi3 disable bt 檢視串列埠對映關係 ls l dev 可以看到串列埠s...