樹莓派3——Qt5控制樹莓派GPIO引腳高低電平輸出

其實控制GPIO引腳電平輸出在C++中只是輸出0或1的問題,在Qt5中控制樹莓派GPIO 引腳的電平輸出其實和Arduino中類似。
1、關於樹莓派引腳的函數基本上都包含在wiringPi.h頭文件中,因此第一步我們要包含這個頭文件。
#include <wiringPi.h>

2、程序員們一般會用宏定義來代表某個引腳,這樣方便之後程序的修改,也增強了代碼的可讀性,比如:如果我要用3號引腳來使蜂鳴器響,可以作出以下宏定義:
#define BuzzerPin 3

3、無論你用哪一款開發板,在使用引腳時,都要做一些初始化的工作,樹莓派也一樣,在Qt的構造函數中可以加入以下初始化代碼:
wiringPiSetup();
pinMode(BuzzerPin,OUTPUT);//設置BuzzerPin(Pin 3)爲輸出模式,若爲’INPUT‘則爲輸入模式

4、接下來就可以按照你程序的邏輯對其進行電平輸出,若要輸出高電平,就寫入高電平,由於只有高低之分,顧名思義,是數字寫入:
digitalWrite(BuzzerPin,HIGH);//'HIGH'代表高電平,相當於1,’LOW‘則爲低電平,相當於’0‘
大多情況下,需要一定的延時才能使一個一直聽到蜂鳴器的聲音,這時候就需要改成下面這段帶有延時的代碼:
digitalWrite(BuzzerPin,HIGH);
QEventLoop eventLoop;
QTimer::singleShot(1000,&eventLoop,SLOT(quit()));//1000即爲延時時長爲1000ms
eventLoop.exec();
digitalWrite(BuzzerPin,LOW);

在Qt中可以用上面這段代碼替代delay(1000)或者sleep(1000)這樣的延時函數。

發佈了32 篇原創文章 · 獲贊 28 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章