本帖最后由 其实不懂贴 于 2013-1-18 12:37 编辑
说到折腾 RPi , 每个粉丝都有自己的玩法. 只要想象力够丰富, 能折腾出的花样真的太多了. 其中一种折腾方式就是通过 RPi 的 GPIO 接口去控制一些小玩意, 甚至可以用来 DIY 机器人. 说到控制 RPi 的 GPIO 接口 , 大家最熟悉的应该是 RPi.GPIO 库了. 因为这是官方提供的库, 而且树莓派杂志上的相关教程里都用的是这套库. 但除了 RPi.GPIO 库之外, 有一些第三方库也非常好用, 比如 WiringPi . 这是一款模仿 Arduino Wiring 风格的函数库, 使用起来非常简单. WiringPi 的特色: 模仿 Arduino Wiring 风格, 熟悉 Arduino 编程的人直接就会用;
可以操作 RPi 上全部 17 根 GPIO 针脚 ( I2C SPI UART 针脚也可以作为 GPIO 使用) ;
支持通过操作 /proc/mem 或 /sys/class/gpio 两种方式来控制 GPIO (前者也是 RPi.GPIO 库的方式, 后者提供了一个不需要 root 权限的方案);
支持 C/C++ , Ruby, Python, Perl, Java, TCL等多种语言编程, 不局限于 Python . 另外,它还提供了附加的功能函数,包括:
shiftIn/shiftOut 库,
串口处理库(同时支持板载串口和USB转接的串口),
LCD 库,
简单的线程编程和进程优先级控制库 . WiringPi 还完全支持 PiFace 扩展板. 更多的细节可以参考 WiringPi 的主页: https://projects.drogon.net/raspberry-pi/wiringpi/ 下载和安装: 安装git-core
sudo apt-get install git-core
下载winringPi库
git clone git://git.drogon.net/wiringPi
编译和安装库
cd wiringPi
./build |
- 写了一段简单的测试代码:
- /********** test.c ***************/
- #include <wiringPi.h>
- #include <stdlib.h>
- int main()
- {
- int i;
- if( wiringPiSetup() == -1 )
- exit( 1 );
- pinMode( 0, OUTPUT );
- pinMode( 1, OUTPUT );
- pinMode( 2, OUTPUT );
- pinMode( 3, OUTPUT );
- for(i = 0; i < 40; i++)
- {
- digitalWrite( i % 4, HIGH );
- delay( 200 );
- digitalWrite( i % 4, LOW );
- delay( 200 );
- }
- return 0;
- }
- /********** test.c ***************/
- 编译&执行:
- cc -o test test.c -L/usr/local/lib -lwiringPi
- sudo ./test
复制代码 英文好的同学自己看看,基本上https://projects.drogon.net/raspberry-pi/wiringpi/把要用的写完了。我本来想翻译的,无奈自己的开发水平不行。有的名词不知道如何解释,所以大家自己进去看看。不会很难。
转载自http://bigbosshu.com/2012/08/162.html |