查看: 14376|回复: 11

[教程] 喜欢c语言的同学,控制gpio

  [复制链接]
  • TA的每日心情
    无聊
    2012-12-9 14:30
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-1-18 12:29:36 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 其实不懂贴 于 2013-1-18 12:37 编辑

    说到折腾 RPi ,  每个粉丝都有自己的玩法.  只要想象力够丰富, 能折腾出的花样真的太多了.  其中一种折腾方式就是通过 RPi 的 GPIO 接口去控制一些小玩意, 甚至可以用来 DIY 机器人.  说到控制 RPi 的 GPIO 接口 , 大家最熟悉的应该是 RPi.GPIO 库了.  因为这是官方提供的库,  而且树莓派杂志上的相关教程里都用的是这套库.   但除了 RPi.GPIO 库之外,  有一些第三方库也非常好用,  比如 WiringPi .  这是一款模仿 Arduino Wiring 风格的函数库, 使用起来非常简单.

    WiringPi 的特色:

    模仿 Arduino Wiring 风格, 熟悉 Arduino 编程的人直接就会用;
    可以操作 RPi 上全部 17 根 GPIO 针脚  ( I2C SPI UART 针脚也可以作为 GPIO 使用) ;
    支持通过操作 /proc/mem 或 /sys/class/gpio 两种方式来控制 GPIO (前者也是 RPi.GPIO 库的方式,  后者提供了一个不需要 root 权限的方案);
    支持 C/C++ , Ruby, Python, Perl, Java, TCL等多种语言编程, 不局限于 Python .

    另外,它还提供了附加的功能函数,包括:
    shiftIn/shiftOut 库,
    串口处理库(同时支持板载串口和USB转接的串口),
    LCD 库,
    简单的线程编程和进程优先级控制库 .

    WiringPi 还完全支持 PiFace 扩展板.

    更多的细节可以参考 WiringPi 的主页: https://projects.drogon.net/raspberry-pi/wiringpi/

    下载和安装:

    安装git-core
    sudo apt-get install git-core

    下载winringPi库
    git clone git://git.drogon.net/wiringPi


    编译和安装库
    cd wiringPi
    ./build
    1. 写了一段简单的测试代码:
    2. /********** test.c ***************/
    3. #include <wiringPi.h>
    4. #include <stdlib.h>

    5. int main()
    6. {
    7.     int i;

    8.     if( wiringPiSetup() == -1 )
    9.         exit( 1 );

    10.     pinMode( 0, OUTPUT );
    11.     pinMode( 1, OUTPUT );
    12.     pinMode( 2, OUTPUT );
    13.     pinMode( 3, OUTPUT );

    14.     for(i = 0; i < 40; i++)
    15.     {
    16.         digitalWrite( i % 4, HIGH );
    17.         delay( 200 );
    18.         digitalWrite( i % 4, LOW );
    19.         delay( 200 );
    20.     }

    21.     return 0;
    22. }
    23. /********** test.c ***************/

    24. 编译&执行:
    25. cc -o test test.c -L/usr/local/lib -lwiringPi
    26. sudo ./test
    复制代码

    英文好的同学自己看看,基本上https://projects.drogon.net/raspberry-pi/wiringpi/把要用的写完了。我本来想翻译的,无奈自己的开发水平不行。有的名词不知道如何解释,所以大家自己进去看看。不会很难。
    转载自http://bigbosshu.com/2012/08/162.html
    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-11-15 08:49
  • 签到天数: 1031 天

    连续签到: 2 天

    [LV.10]以坛为家III

    发表于 2013-1-18 12:48:41 | 显示全部楼层
    好呀,顶一个
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-2-2 09:09
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2013-1-18 14:41:30 | 显示全部楼层
    void pinMode (int pin, int mode) ;
    This sets the mode of a pin to either INPUT, OUTPUT, or PWM_OUTPUT. Note that only wiringPi pin 1 (BCM_GPIO 18) supports PWM output. The pin number is the number obtained from the pins table.

    This function has no effect when in Sys mode.

    void digitalWrite (int pin, int value) ;
    Writes the value HIGH or LOW (1 or 0) to the given pin which must have been previously set as an output.

    void delay (unsigned int howLong)
    This causes program execution to pause for at least howLong milliseconds. Due to the multi-tasking nature of Linux it could be longer. Note that the maximum delay is an unsigned 32-bit integer or approximately 49 days.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2012-12-9 14:30
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-1-19 18:22:37 | 显示全部楼层
    powerdruy 发表于 2013-1-18 21:14
    这就是ARDUINO的函数命名规范,使用起来很容易

    是啊,那个上面就是这么说的。由于我没有玩过arduino,就不是很清楚
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2012-12-9 14:30
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2013-1-19 18:23:46 | 显示全部楼层
    powerdruy 发表于 2013-1-18 21:28
    我嘞个去啊,突然发现有这个东西了之后不是可以用树莓搞开发了么,连GPIO和各种接口都有了,这不是就是个开发 ...

    哈哈,是啊!这个真的可以研究研究.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2013-2-17 09:37
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-1-19 21:23:50 | 显示全部楼层
    powerdruy 发表于 2013-1-18 21:28
    我嘞个去啊,突然发现有这个东西了之后不是可以用树莓搞开发了么,连GPIO和各种接口都有了,这不是就是个开发 ...

    本来就是开发板啊~~~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-8-14 20:22
  • 签到天数: 121 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2013-4-11 16:27:45 | 显示全部楼层
    为什么我的安装完~不能运行~运行gpio~没有反应呀
    WQGPR0Y{LQGD9TY938W0VDD.jpg
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-7-28 09:42
  • 签到天数: 292 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-7-12 21:59:30 | 显示全部楼层
    好东西的  哈哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2016-7-28 09:42
  • 签到天数: 292 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2013-7-12 22:58:41 | 显示全部楼层
    再来顶一下帖子
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-4-23 22:36
  • 签到天数: 23 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    发表于 2013-8-20 00:31:40 | 显示全部楼层
    这个真心好,还是C亲切
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-4-26 00:22 , Processed in 0.202817 second(s), 33 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.