[筆記] 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,只要參考網路連結的說明,重編後就會產生函式庫了。
圖二:LCM1602測試程式


留言

此網誌的熱門文章

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] Android APP 藍芽範例說明 -- BluetoothChat

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Android APP BLE範例程式 -- BluetoothLeGatt

[筆記] Visual Studio 遠端偵錯的設定步驟

[應用] STM32 DFU (Device Firmware Upgrade)