【相关博文】
更多树莓派学习笔记请参考——【1.硬件准备

    【树莓派】——在开始所有的实验之前,你需要一块完整的树莓派。
    【IO扩展板】——可以通过淘宝购买IO扩展板,或者购买万用板和杜邦线自行制作IO扩展板。
图1 树莓派扩展板——图片来自 天猫 大菠萝数码专营店
 
图2 运行效果图

2.注意事项

【编号方式】

图3 GPIO编号方式——该图片来自wiringPi说明文档
    树莓派的软件扩展库虽然很多,但也导致了扩展库“碎片化”的问题,例如操作树莓派的GPIO端口,GPIO的编号便存在三种不同的方式
    编号侧重P1插座侧,从上到下,从左到右。正如图3的Header一栏。
    编号    【3】wiringPi编号方式
    编号侧重实现逻辑,把扩展GPIO端口从0开始编号,这种编号方便编程。正如图3 WiringPi一栏。
    【举例说明】
    插座编号方式 11 -> BCM2835编号方式 17 -> wiringPi编号方式 GPIO0。无论如何它都是同一个IO管脚。
 
    
    【1】直接在树莓派中编写
    树莓派中有几款代码(文本)编辑软件,可以在树莓派中编写代码。
    【2】在windows中编写
 
 
可以在windows中编写代码,如果是Python脚本可通过FTP软件传输到树莓派中,然后使用SSH客户端登录到树莓派中执行Python脚本。如
果是C语言文件,除了使用FTP传输之外还需要在树莓派上编译才可以生成可执行文件(相当于windows上的exe文件)。相关软件操作请参考【【3】在其他linux中编写
2 Python GPIO实现

        【1】先安装python-dev,输入以下指令。
sudo apt-get install python-dev
        【2】安装RPi.GPIO,依次输入以下指令。特别说明,由于RPi.GPIO仍处于不断完善的过程中,请参考前言中的链接下载最新的安装代码。
# 下载 
$ wget # 解压缩 
# 进入解压之后的目录 
# 启动安装

新建一个名为led.py的文件,该文件具体内容如下:

  • import RPi.GPIO as GPIO
  • import time
  • # BOARD编号方式,基于插座引脚编号
  • GPIO.setmode(GPIO.BOARD)
  • # 输出模式
  • GPIO.setup(11, GPIO.OUT)
  • while True:
  • GPIO.output(11, GPIO.HIGH)
  • time.sleep(1)
  • GPIO.output(11, GPIO.LOW)
  • time.sleep(1)
    如果在windows上编写代码,请使用FTP软件下载到树莓派中,使用SSH客户端登陆树莓派,cd命令进入文件所在目录,然后输入指令
    sudo python led.py
    好吧,扩展板上的LED等开始闪烁了。最后使用Ctrl+C结束Python程序。
    【简单说明】

【1】    【2】由于采用插座引脚编号方式,此处的11脚相当于BCM2835寄存器编号方式的引脚11。

4 WiringPi实现

 

  • int main(void)
  • {
  • wiringPiSetup() ;
  • pinMode (0, OUTPUT) ;
  • for(;;)
  • {
  • digitalWrite(0, HIGH) ; delay (500) ;
  • digitalWrite(0,  LOW) ; delay (500) ;
  • }
  • }
【3】-lwiringPi表示动态加载wiringPi共享库,如果不熟悉gcc指令和makefile,请参考系列博文——【5 BCM2835 C Library

    特别说明,由于BCM2835 C Library仍处于不断完善的过程中,请参考前言中的链接下载最新的安装代码。
# 下载
# 解压缩
# 进入压缩之后的目录

新建一个名为blink.c的程序,程序的具体内容如下:

  • // P1插座第11脚
  • #define PIN RPI_GPIO_P1_11
  • int main(int argc, char **argv)
  • {
  • if (!bcm2835_init())
  • return 1;
  • // 输出方式
  • bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
  • while (1)
  • {
  • bcm2835_gpio_write(PIN, HIGH);
  • bcm2835_delay(100);
  • bcm2835_gpio_write(PIN, LOW);
  • bcm2835_delay(100);
  • }
  • bcm2835_close();
  • return 0;
  • }
6 未来做些什么

    实践GPIO输入功能,实践SPI功能,实践I2C功能等。最后综合以上若干内容结合web做些好玩的应用。
 

[转]树莓派gpio口控制的更多相关文章

  1. android gpio口控制

    android gpio口控制  GPIO口控制方式是在jni层控制的方式实现高低电平输出,类似linux的控制句柄方式,在linux系统下将每个设备看作一个文件,android系统是基于linux内 ...

  2. 树莓派GPIO口的使用

    树莓派的优势在于Liunx操作系统加GPIO口,其中IO口时物联网组成中不可缺少的,高低电平的控制是很有必要的存在,再加有python的支持,玩转GPIO相对就容易多了 管脚编号 BCM: 编号侧重 ...

  3. 树莓派GPIO口驱动编写

    一.wiringpi写法 #include <wiringPi.h> #include <stdlib.h> int main(int argc,char *argv[]) { ...

  4. 树莓派GPIO控制RGB彩色LED灯

    树莓派GPIO通过PWM来控制RGB彩色LED灯,可以显示任何我们想要的颜色. RGB模块简介 这个RGB彩色LED里其实有3个灯,分别是红灯.绿灯和蓝灯.控制这三个灯分别发出不同强度的光,混合起来就 ...

  5. 树莓派GPIO控制LED彩灯

    树莓派使用GPIO接口来控制LED灯,自制五彩炫光的节日彩灯. 1.硬件准备 a. 树莓派(Raspberry Pi)一个 b. 彩色RGB二极管 c. 杜邦线 d. 5V电源引脚 以上所有零件均可在 ...

  6. 树莓派基于scratch2控制GPIO

    本文通过MetaWeblog自动发布,原文及更新链接:https://extendswind.top/posts/technical/raspberry_scratch2_gpio_control.m ...

  7. linux驱动初探之杂项设备(控制两个GPIO口)

    关键字:linux驱动.杂项设备.GPIO 此驱动程序控制了外接的两个二极管,二极管是低电平有效. 上一篇博客中已经介绍了linux驱动程序的编写流程,这篇博客算是前一篇的提高篇,也是下一篇博客(JN ...

  8. 基于boa服务器的web控制mini2440的GPIO口

    win7 系统  虚拟机:ubuntu12.04 开发板:mini2440 上一篇已经详细的讲解了如何配置boa服务器,在这里我们就要利用boa服务器带来的便利,利用web控制开发板上的GIPO口,这 ...

  9. openwrt 控制gpio口的方法

    利用i2c来控制gpio口 1.编译驱动或者安装驱动 # opkg update # opkg install kmod-i2c-gpio-custom kmod-i2c-core# 加载驱动 # i ...

随机推荐

  1. c#执行插入sql 时,报错:异常信息:超时时间已到。在操作完成之前超时时间已过或服务器未响应

    问题:c#执行插入sql 时,报错:异常信息:超时时间已到.在操作完成之前超时时间已过或服务器未响应 解决: SqlCommand cmd = new SqlCommand(); cmd.Comman ...

  2. Chrome 与 Firefox-Dev 的 DevTools

    不管是做爬虫还是写 Web App,Chrome 和 Firefox 的 DevTools 都是超常用的,但是经常发现别人的截图有什么字段我找不到,别人的什么功能我的 Chrome 没有,仔细一搜索才 ...

  3. URAL 1736 Chinese Hockey(网络最大流)

    Description Sergey and Denis closely followed the Chinese Football Championship, which has just come ...

  4. oracle INSERT INTO多个值

    稍微熟悉Oracle的都知道,如果我们想一条SQL语句向表中插入多个值的话,如果INSERT INTO 某表 VALUES(各个值),VALUES(各个值),.....;这样会报错的,因为oracle ...

  5. beta版本冲刺六

    目录 组员情况 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团队签入记 ...

  6. 【Python】- 如何使用Visual Studio 2013编写python?

    安装Visual Studio 2013 1.VS2013下载安装略 安装python2.7 1.从官网下载python2.7,下载地址:https://www.python.org/getit/  ...

  7. Python 类和对象-上

    #类和对象 class Human: #属性 -> 成员属性(变量) ear = 2 mouth = 1 sex = 'man' age = 28 name = 'zhangwang' marr ...

  8. PHP的报错级别并返回当前级别error_reporting()

    定义和用法:error_reporting() 设置 PHP 的报错级别并返回当前级别.函数语法:error_reporting(report_level) 如果参数 level 未指定,当前报错级别 ...

  9. hdu 1267 下沙的沙子有几粒? (递推)

    下沙的沙子有几粒? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  10. P1275 魔板

    题目描述 有这样一种魔板:它是一个长方形的面板,被划分成n行m列的n*m个方格.每个方格内有一个小灯泡,灯泡的状态有两种(亮或暗).我们可以通过若干操作使魔板从一个状态改变为另一个状态.操作的方式有两 ...