本人作为c++的死忠,一向使用wiringpi库,RPI的粉丝可以移步可乐大神的试用贴。
前段时间发现ubuntu系统自带大名鼎鼎的wiringPi库,经过官方定制,使用方法和树莓派下几乎是一模一样,看来点灯也是件相当容易的事情。
我们可以参考wiringpi的官网:http://wiringpi.com/
(一)硬件
我们可以通过命令行查看引脚:这里我们使用0号引脚
(二)程序
官网中提到,调用wiringpi首先要初始化:
参考:http://wiringpi.com/reference/setup/- There are four ways to initialise wiringPi.
- int wiringPiSetup (void) ;
- int wiringPiSetupGpio (void) ;
- int wiringPiSetupPhys (void) ;
- int wiringPiSetupSys (void) ;
复制代码所以,首先要调用wiringPiSetup 。 其次,要设置gpio的输出方式: 参考:http://wiringpi.com/reference/core-functions/ - void pinMode (int pin, int mode) ;
复制代码 更改电平状态可以使用:- void digitalWrite (int pin, int value) ;
复制代码 当然也可以用下面这个函数设置上下拉,我这里出于简单起见,没有设置:- void pullUpDnControl (int pin, int pud) ;
复制代码最后,头文件当然要包括wiringPi.h。 整个程序: - #include <wiringPi.h>
- int main()
- {
- // 初始化wiringPi
- wiringPiSetup();
- int i = 0;
- // 设置IO口全部为输出状态
- pinMode(i, OUTPUT);
- for (;;)
- {
- // 点亮500ms 熄灭500ms
- digitalWrite(i, HIGH); delay(500);
- digitalWrite(i, LOW); delay(500);
- }
- return 0;
- }
复制代码 (三)编译运行- gcc gpio.c -o gpio -lwiringPi
复制代码 结果出现以下错误:
我们可以man一下这些错误:结果,可以看到,crypt的调用需要-lcrypt库。
以此类推,总共所需要的库有:- -lwiringPi -lcrypt -lrt -lpthread -lm
复制代码 所以真正的编译命令:- gcc gpio.c -o gpio -lwiringPi -lcrypt -lrt -lpthread -lm
复制代码 这里要加上这么多有点意外,在树莓派上是不需要的,可能是banana官方对wiringpi库改造的过程中改变了某些功能。
接着我们就可以看到灯在一闪一闪的。
|