树莓派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)这样的延时函数。

猜你喜欢

转载自blog.csdn.net/marilynmontu/article/details/80552275