|
本帖最后由 xiansen_shun 于 2016-6-21 16:38 编辑
一,常用的开源工程
树莓派内核中已经编译自带了GPIO的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有:
1、Python GPIO
【开发语言】——python
【简单介绍】——树莓派官方资料中推荐且容易上手。python GPIO是一个小型的python库,可以帮助用户完成raspberry相关IO口操作,但是python GPIO库还没有支持SPI、I2C或者1-wire等总线接口。
【官方网站】—— https://code.google.com/p/raspberry-gpio-python/
2、wiringPi 【开发语言】——C语言
【简单介绍】——wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括UART设备,I2C设备和SPI设备等。
【官方网站】—— http://wiringpi.com/
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找到不少的“灵感”。
【官方网站】—— http://www.airspayce.com/mikem/bcm2835/
二,树莓派的GPIO编码方式
1、功能物理引脚:
从左到右,从上到下:左边基数,右边偶数:1-40
2、BCM:
编号侧重CPU寄存器,根据BCM2835的GPIO寄存器编号。
3、wpi:
编号侧重实现逻辑,把扩展GPIO端口从0开始编号,这种编号方便编程。
下图是树莓派的GPIO的引脚编码位置。
三、操作实战
我现在采用的方式是WiringPi
首先我们需要安装WiringPi 方法有两种
方案一、使用git工具
通过git 获取WiringPi的源代码
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build
build脚本会帮助你编译和安装wiringPi
方案二 直接下载安装
们可以在https://git.drogon.net/?p=wiringPi;a=summary网站上直接下载最新版本编译使用
$ tar xfz wiringPi-xx.tar.gz
$ cd wiringPi-xx
$ ./build
测试
wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi是否安装成功。
$gpio -v
$gpio readall
如果成功则会出现IO图
$ mkdir led
$ cd led
$ vim test.c
闪烁Led例子
[mw_shl_code=cpp,true]#include <wiringPi.h>
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灯会一闪一闪的了。
|
|