树莓派GPIO控制LED灯-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 14394|回复: 4

树莓派GPIO控制LED灯

[复制链接]
发表于 2016-5-23 13:17 | 显示全部楼层 |阅读模式
本帖最后由 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的引脚编码位置。
raspbian-GPIO.jpg

三、操作实战
我现在采用的方式是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图

GPIO-1.png
$ 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灯会一闪一闪的了。


 楼主| 发表于 2016-5-23 13:23 | 显示全部楼层
自己顶下 谢谢~
发表于 2016-5-23 13:50 | 显示全部楼层
补充下,mraa也可以控制树莓派GPIO,且支持IIC\SPI
发表于 2016-8-13 12:26 | 显示全部楼层
你好,我想问一下wiring pi的serial库怎么用?我想用它来完成串口通信。。。
 楼主| 发表于 2016-8-22 14:46 | 显示全部楼层
ttjmyy 发表于 2016-8-13 12:26
你好,我想问一下wiring pi的serial库怎么用?我想用它来完成串口通信。。。

http://www.arduino.cn/thread-21348-1-1.html    我有空的时候会往这个里面更新
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 21:43 , Processed in 0.098831 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表