[筆記] Raspberry Pi 樹莓派的 I/O 介面開發 in C
雖然樹莓派3.0就像一台小型電腦,已經內建USB埠口和網路通訊,但是有些感測模組需要靠專屬的通訊介面才能連接,無法直接使用USB方式通訊。我們發現樹莓派板子上有一排針腳,上面提供電源(3.3V和5V)、GPIO、UART、I2C、SPI...等常用的通訊介面,以方便開發者連接其他模組,因此樹莓派也可視為類似微控制器的電腦。
這個介面上的程式開發如前文章所說,我們可以用C/C++語言或者內建的Python語言來設計,不過如果採用C語法來開發,那麼必須先下載一套函式庫,稱為WiringPi,它提供介面函數接口,讓我們方便操作控制這周邊的通訊介面。底下的連結提供詳細的下載、安裝、重新編譯和使用說明。
<< LCM顯示的例子>>
從GitHub上面找一些樹莓派相關的開發程式,其中LCM1602是一個以I2C為通訊介面的LCM模組。我們下載這個範例程式到自己的樹莓派板子上測試,首先打開樹莓派I/O設定視窗,如圖一所示。圖中的I2C介面要設為啟用,這樣LCM模組才能正常運行。
圖一:樹莓派I/O介面開關 |
接下來,在Geany IDE創建一個新專案,把程式碼放到專案目錄裡,如圖二所示。程式測試的過程打算讓LCM螢幕每隔一秒顯示計數,並且將數值加一。另外,GPIO介面控制的LED燈號也會每秒閃爍一次。執行這個程式後,影片如下。
由於介面的控制都是調用wiringPi的函式庫,在編譯時,我們必須載入相關的library,否則會編譯錯誤。在編譯的參數設定,要加入 -lwiringPi -lwiringPiDev 這兩個外部函式庫。如果沒有找到這兩個函式庫 (wiringPi和wiringPiDev),代表下載了wiringPi源代碼卻沒有在這個樹莓派板子上重編wiringPi,只要參考網路連結的說明,重編後就會產生函式庫了。
由於介面的控制都是調用wiringPi的函式庫,在編譯時,我們必須載入相關的library,否則會編譯錯誤。在編譯的參數設定,要加入 -lwiringPi -lwiringPiDev 這兩個外部函式庫。如果沒有找到這兩個函式庫 (wiringPi和wiringPiDev),代表下載了wiringPi源代碼卻沒有在這個樹莓派板子上重編wiringPi,只要參考網路連結的說明,重編後就會產生函式庫了。
圖二:LCM1602測試程式 |
留言