樹莓派的C語言開發好搭檔WiringPi庫

2021-08-19 21:43:14 字數 2595 閱讀 4507

一、準備工作

1、3b開發板一塊,通電,連線上家裡的無線網路。

2、開啟vnc軟體,連線上開發板。

二、wiringpi介紹

wiringpi是應用於樹莓派平台的gpio控制庫函式,wiringpi遵守gun lv3。wiringpi使用c或者c++開發並且可以被其他語言包轉,例如python、ruby或者php等。wiringpi中的函式類似於arduino的wiring系統,這使得熟悉arduino的使用者使用wringpi更為方便。

樹莓派具有26個普通輸入和輸出引腳。在這26個引腳中具有8個普通輸入和輸出管腳,這8個引腳既可以作為輸入管腳也可以作為輸出管腳。除此之外,樹莓派還有乙個2線形式的i2c、乙個4線形式的spi和乙個uart介面。樹莓派上的i2c和spi介面也可以作為普通埠使用。如果串列埠控制台被關閉便可以使用樹莓派上的uart功能。如果不使用i2c,spi和uart等復用介面,那麼樹莓派總共具有8+2+5+2 =17個普通io。wiringpi包括一套gpio控制命令,使用gpio命令可以控制樹莓派gpio管腳。使用者可以利用gpio命令通過shell指令碼控制或查詢gpio管腳。wiringpi是可以擴充套件的,可以利用wiringpi的內部模組擴充套件模擬量輸入晶元,可以使用mcp23x17/mcp23x08(i2c 或者spi)擴充套件gpio介面。另外可通過樹莓派上的串列埠和atmega(例如arduino等)擴充套件更多的gpio功能。另外,使用者可以自己編寫擴充套件模組並把自定義的擴充套件模組整合到wiringpi中。wiringpi支援模擬量的讀取和設定功能,不過在樹莓派上並沒有模擬量裝置。但是使用wiringpi中的軟體模組卻可以輕鬆地應用ad或da晶元。

三、wiringpi 安裝

如果在你的樹莓派上還沒有安裝 git 工具,請輸入以下命令安裝:

sudo apt-get install git-core

如果在過程中出現錯誤,嘗試更新軟體源:

sudo apt-get update

wiringpi

的源**,輸入命令:

②、安裝wiringpi

進入wiringpi目錄並安裝

wiringpi

庫cd wiringpi

./build

build指令碼將會自動完成

wiringpi

庫的編譯和安裝,安裝完成如下

③、檢視是否安裝成功,輸入gpio -v  顯示下面的版本資訊說明安裝成功

④、檢視gpio管腳圖

樹莓派核心中已經編譯自帶了gpio的驅動,我們常通過一些第三方寫好的庫函式來完成具體的操作,比較常見的操作庫函式有:

1、python gpio

【開發語言】——python

【簡單介紹】——樹莓派官方資料中推薦且容易上手。python gpio是乙個小型的python庫,可以幫助使用者完成raspberry相關io口操作,但是python gpio庫還沒有支援spi、i2c或者1-wire等匯流排介面。

【官方**】—— 

2、wiringpi

【開發語言】——c語言

【簡單介紹】——wiringpi適合那些具有c語言基礎,在接觸樹莓派之前已經接觸過微控制器或者嵌入式開發的人群。wiringpi的api函式和arduino非常相似,這也使得它廣受歡迎。作者給出了大量的說明和示例**,這些示例**也包括uart裝置,i2c裝置和spi裝置等。

【官方**】—— 

3、bcm2835 c library

【開發語言】——c語言

【簡單介紹】bcm2835 c library可以理解為使用c語言實現的相關底層驅動,bcm2835 c library的驅動庫包括gpio、spi和uart等,可以通過學習bcm2835 c library熟悉bcm2835相關的暫存器操作。如果有機會開發樹莓派上的linux驅動,或自主開發python或php擴充套件驅動,可以從bcm2835 c library找到不少的「靈感」。

【官方**】—— 

樹莓派gpio編號方式

1、功能物理引腳:

從左到右,從上到下:左邊基數,右邊偶數:1-40

2、bcm:

編號側重cpu暫存器

,根據bcm2835的gpio暫存器編號。

3、wpi:

編號側重實現邏輯

,把擴充套件gpio埠從0開始編號,這種編號方便程式設計。正如圖3 wiringpi一欄。

樹莓派c 開發踩坑

這幾年用慣了高階語言,c 當年還是c99標準的,尋思這回用用c 最新的特性看看,比如在高階語言中的明顯降低耦合性的自定義事件,這是第乙個坑。首先想到的是個函式指標的巨集 typedef void eventfun eventtype,void 寫完之後發現只能用於靜態函式,看了看c 11特性裡面的 ...

樹莓派c語言執行 樹莓派GPIO介面程式設計!

樹莓派之所以這麼成功,除了超高價效比和完善的生態系統外,其開放的40pin對外介面功不可沒,這40pin管腳中,除了12個電源類外,其餘28個都是可程式設計的gpio,其中部分gpio可以復用為iic,spi,uart,pwm等等,可以用來驅動各種外設。但是這些gpio的編號有些混亂,不同的api對...

樹莓派下的驅動開發

程式設計師的入門經典當然就是hello world程式了,我的第乙個實驗就是要搭建實驗環境和工具鏈,通過交叉編譯的方式,在上位機完成hello world驅動程式的編寫,最終在板子上執行。最終搭建的平台如下,後期的通訊可以直接使用串列埠,就不需要hdmi輸出了 我們在上位機編寫hello world...