【相关博文】
更多树莓派学习笔记请参考——【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. js鼠标事件相关知识

    1.mousedown->mouseup依次触发后相当于click事件 2.除了mouseenter和mouseleave外,其它的鼠标事件都是冒泡的 3.mouseover和mouseout事 ...

  2. Qt Qwdget 汽车仪表知识点拆解4 另类进度条实现

    先贴上效果图,注意,没有写逻辑,都是乱动的 注意看一下,右面的这两个进度条,有瑕疵,就是我没有把图片处理干净,这里犹豫我不知道这个具体的弧度,也没法绘制,就偷懒了 现在上面放一个UI,把两个进度条抠空 ...

  3. Qt QPainter::end: Painter ended whith 2 saced states

    在使用Qt  QPainter 的时候,有时会遇到“QPainter::end: Painter ended whith 2 saced states” 这时由于我们在使用的QPanter.trans ...

  4. ASP.NET MVC5.0 OutputCache不起效果

    按照官网文档(https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/controllers-and-routing ...

  5. HDU 3689 Infinite monkey theorem(DP+trie+自动机)(2010 Asia Hangzhou Regional Contest)

    Description Could you imaging a monkey writing computer programs? Surely monkeys are smart among ani ...

  6. css3 移入移出动画

    css: /*css3 鼠标移入移出动画 底部出现阴影层文字叙述*/ *{;} .div1{width:300px;height: 300px;text-align: center; backgrou ...

  7. iOS版微信开发小结(微信支付,APP跳转微信公众号)

    最近公司心血来潮,一心要搞微信.废话不多说,直接上干货. 开发前准备: 1.在微信开发者平台获取开发者认证:(一年300元人民币) PS:具体流程按照微信流程指示操作即可,在这就不废话了. 2.下载微 ...

  8. java实现数据库连接的工具类

    第一种 (带事务) package com.china.util; import java.sql.Connection; import java.sql.DriverManager; import ...

  9. 【bzoj1999】[Noip2007]Core树网的核 树的直径+双指针法+单调队列

    题目描述 给出一棵树,定义一个点到一条路径的距离为这个点到这条路径上所有点的距离的最小值.求一条长度不超过s的路径,使得所有点到这条路径的距离的最大值最小. 输入 包含n行: 第1行,两个正整数n和s ...

  10. P3509 [POI2010]ZAB-Frog

    题目描述 On the bed of one particularly long and straight Byteotian brook there lie  rocks jutting above ...