1. 程式人生 > >樹莓派學習札記(4)—— pi4j使用串列埠筆記

樹莓派學習札記(4)—— pi4j使用串列埠筆記

一、關於Pi4j 專案:

pi4j是一個開源的raspberry pi JAVA開源專案。
目前最新的版本為:pi4j-1.1 這個與之前的版本有許多不同。
線上安裝pi4j :
curl get.pi4j.com | sudo bash
安裝完畢後在/opt/pi4j/ 目錄下有三個資料夾以及三個檔案:
這裡寫圖片描述

其中examples 資料夾下是使用pi4j 使用java開發應用的例程。在開發我們自己的應用時,可以參考這些例程。
這裡寫圖片描述

再編譯、執行時,參考build 、run 這兩個指令碼檔案。

二、關於raspberry pi 3的引出的UART

注意:本文使用的映象為2016-05-27-raspbian-jessie.img
該系統預設情況下,接在引出的40pin上的UART是關閉的。
這裡寫圖片描述

此時,我們編譯、執行/opt/pi4j/example/ 下的SerialExample.java 連線好串列埠線,在PC端使用串列埠助手是接收不到任何東西的!

解決這個問題需要操作兩個步驟:
①、執行 sudo raspi-config :該指令用於配置樹莓派
這裡寫圖片描述
選中第9項 Advanced Options
這裡寫圖片描述
選擇A7 Serial,
這裡寫圖片描述
使能Serial 作為linux shell 登入
這裡寫圖片描述
此時重新啟動Pi ,連線上串列埠。可以從串列埠中接收到Pi的啟動輸出資訊。
這裡寫圖片描述
此時,我們編譯執行/opt/pi4j/example/SerialExample.java 程式也是能夠傳送資料到PC的串列埠;但是此時還有點問題!需要注意。我們來看現象:
這裡寫圖片描述

仔細看,發現我用串列埠助手給Pi傳送了123456,但是它直接就返回給了PC機,這個時候可能沒有分析程式,感覺這個也不一定就是Pi的配置問題。但是,我們很快就發現:
這裡寫圖片描述
UART時不時的多輸出一個 6 ,這個正是我們之前傳送多的字元的最後一個字元。如果此時覺得問題還不明顯,我們關係程式執行:ctrl + c 結束該程式。
這裡寫圖片描述
我們稍微等待一下,就會發現。此時串列埠助手還能接收到6。
這裡寫圖片描述
這個問題就很明顯了吧。那麼接下來就是解決這個問題。

②解決Serial 作為Raspbian 的shell終端使用時,串列埠資料傳輸的問題:
A、先備份一下/boot/cmdline.txt 檔案:
這裡寫圖片描述

B、修改cmdline.txt中的內容。
只需要刪除掉console=serial0,115200,並重新啟動pi,未修改前的內容如下
這裡寫圖片描述
修改後:
這裡寫圖片描述
此時,重新啟動pi,串列埠不會再作為Linux shell 終端了。執行上述例程也不會有問題!