本帖最后由 xiansen_shun 于 2016-6-21 16:38 编辑
一,常用的开源工程
树莓派内核中已经编译自带了GPIO的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有:
1、
【开发语言】——python
【简单介绍】——树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作,但是python GPIO库还没有支持SPI、I2C或者1-wire等总线接口。
2、wiringPi【开发语言】——C语言
【简单介绍】——wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等。
3、BCM2835 C Library
【开发语言】——C语言
【简单介绍】BCM2835 C Library可以理解为使用C语言实现的相关底层驱动,BCM2835 C Library的驱动库包括GPIO、SPI和UART等,可以通过学习BCM2835 C Library熟悉BCM2835相关的寄存器操作。如果有机会开发树莓派上的linux驱动,或自主开发python或PHP扩展驱动,可以从BCM2835 C Library找到不少的“灵感”。
1、功能物理引脚:
从左到右,从上到下:左边基数,右边偶数:1-40
2、BCM:
编号侧重CPU寄存器,根据BCM2835的GPIO寄存器编号。3、wpi:
编号侧重实现逻辑,把扩展GPIO端口从0开始编号,这种编号方便编程。
下图是树莓派的GPIO的引脚编码位置。
raspbian-GPIO.jpg (214.85 KB, 下载次数: 50)
2016-5-23 12:56 上传
三、操作实战
我现在采用的方式是WiringPi
首先我们需要安装WiringPi 方法有两种
方案一、使用git工具
通过git 获取WiringPi的源代码$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi$ ./buildbuild脚本会帮助你编译和安装wiringPi方案二 直接下载安装$ tar xfz wiringPi-xx.tar.gz
$ cd wiringPi-xx$ ./build
测试wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi是否安装成功。$gpio -v
$gpio readall如果成功则会出现IO图
GPIO-1.png (47.72 KB, 下载次数: 33)
2016-5-23 13:09 上传
$ mkdir led
$ cd led
$ vim test.c闪烁Led例子
[mw_shl_code=cpp,true]#include
int main(void)
{
wiringPiSetup() ;
pinMode (0, OUTPUT) ;
for(;;)
{
digitalWrite(0, HIGH) ;
delay (500) ;
digitalWrite(0, LOW) ;
delay (500) ;
}
} [/mw_shl_code]
然后保存退出即可。
四 编译运行
在树莓派上执行$ gcc -Wall -o test test.c -lwiringPi备注:-lwiringPi表示动态加载wiringPi共享库。$ sudo ./test执行完成后你就能看到led灯会一闪一闪的了。