wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程,等等。

安装方法

注意:由于wiringPi的作者已经停止支持,故无法通过apt-get安装,只能手动下载进行编译。

进入wiringPi的github (https://git.drogon.net/?p=wiringPi;a=summary) 下载安装包。点击页面的第一个链接的右边的snapshot,下载安装压缩包。
然后进入安装包所在的目录执行以下命令:

>tar xfz wiringPi-98bcb20.tar.gz   //98bcb20为版本标号,可能不同
>cd wiringPi-98bcb20
>./build

验证wiringPi的是否安装成功,输入gpio -v,会在终端中输出相关wiringPi的信息。否则安装失败。

编译和运行方法

编译:

g++ -Wall -o test test.cpp  -lwiringPi         //使用C++编程 , -Wall 是为了使能所有警告,以便发现程序中的问题
gcc -Wall -o test test.c   -lwiringPi          //使用C语言编程

运行:

sudo ./test

引脚编号

使用如下控制台下命令

> gpio readall

也可以查看下面的图:
raspi-pin.png

wiringPi库API

来个手册吧:
WiringPi 用户手册.pdf
具体使用见:树莓派wiringPi库详解

注意事项

wiringPi这个库并不完善,存在很多问题,现将发现的问题及解决方法列出。

Serial相关命令异常
在发送串口数据时,如果使用serial相关命令例如serialPutchar时,会出现数据丢失以及自动发送溢出数据等问题,原因未知。
通过查看源代码可看到发送数据使用了C的write函数:

void serialPutchar (const int fd, const unsigned char c)
{
  write (fd, &c, 1) ;
}

故可以直接使用write函数将数据写入文件以进行发送,经测试,这种发送方式是正常的。