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
也可以查看下面的图:
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函数将数据写入文件以进行发送,经测试,这种发送方式是正常的。