WiringPi 是应用于树莓派平台的 GPIO 控制库函数,WiringPi 遵守 GUN Lv3。wiringPi 使用 C 或者 C++ 开发并且可以被其他语言包转,例如 Python、ruby 或者 PHP 等。 wiringPi 包括一套 gpio 控制命令,使用 gpio 命令可以控制树莓派 GPIO 管脚。用户可以利用 gpio 命令通过 shell 脚本控制或查询 GPIO 管脚。wiringPi 是可以扩展的,可以利用 wiringPi 的内部模块扩展模拟量输入芯片,可以使用 MCP23x17/MCP23x08(I2C 或者 SPI)扩展 GPIO 接口。另外可通过树莓派上的串口和 Atmega(例如 arduino 等)扩展更多的 GPIO 功能。另外,用户可以自己编写扩展模块并把自定义的扩展模块集成到 wiringPi 中。WiringPi 支持模拟量的读取和设置功能,不过在树莓派上并没有模拟量设备。但是使用 WiringPi 中的软件模块却可以轻松地应用 AD 或 DA 芯片。

二、实现步骤


1、wiringPi 安装

  • 方案 A——使用 GIT 工具,通过 GIT 获得 wiringPi 的源代码。

git clone git://git.drogon.net/wiringPi

cd wiringPi

./build

build 脚本会帮助你编译和安装 wiringPi。

  • 方案B——直接下载

tar xfz wiringPi-xx.tar.gz

cd wiringPi-xx

./build

wiringPi 包括一套 gpio 命令,使用 gpio 命令可以控制树莓派上的各种接口,通过以下指令可以测试wiringPi 是否安装成功。

gpio−v gpio -v gpio readall

2、查看当前系统已加载驱动

3、查看usr/include/目录下wiringPi驱动库函数

4、实际gcc交叉编译操作

三、代码实现


#include<wiringPi.h>

#include<stdio.h>

#include<stdlib.h>

int main (int argc,char* argv[])

{

printf(“into \n”);

if (argc < 2) {

printf(“Usage example: ./led 4 \n”);

return 1;

}

int pinNumber = atoi(argv[1]);

if (-1 == wiringPiSetup()) {

printf(“Setup wiringPi failed!”);

return 1;

}

pinMode(pinNumber, OUTPUT); // set mode to output

while(1) {

digitalWrite(pinNumber, 1); // output a high level

delay(1000);

digitalWrite(pinNumber, 0); // output a low level

delay(1000);

}

return 0;

}

四、心得体会


通过实践加深了嵌入式系统理论知识,设备驱动程序设计是用户应用程序与硬件之间的一个中间软件层。对linux设备驱动概念和框架的使用设计有了一定概念,在从事以后嵌入式的工作有很大帮助!

几个小技巧写在最后:

Linux学习~树莓派gpio控制相关推荐

  1. 实例4:树莓派GPIO控制舵机转动

    实例4:树莓派GPIO控制舵机转动 实验目的 通过背景知识学习,了解舵机的外观及基本运动方式. 了解四足机器人mini pupper腿部单个舵机的组成结构. 通过GPIO对舵机进行转动控制,熟悉PWM ...

  2. 实例2:树莓派GPIO控制外部LED灯闪烁

    实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制. 通过 ...

  3. 树莓派GPIO控制/使用的教程

    树莓派GPIO控制/使用的教程 介绍 使用说明 (一)导入库 (二)设置编码规范 (三)引脚设置 (四)电平控制 (五)读取引脚的输入状态 (六)释放GPIO资源 (七)示例代码 (八)PWM设置 一 ...

  4. Raspberry Pi 4B树莓派 |#入门教程02# 树莓派GPIO控制(Python、C)

    树莓派GPIO编号方式 功能物理引脚 从左到右,从上到下:左边奇数,右边偶数:1-40 通过打开终端窗口并运行命令,可以在Raspberry Pi上访问方便的参考pinout.该工具由GPIO零 Py ...

  5. 树莓派 GPIO 控制

    常用开源工程简介 树莓派内核中已经编译自带了 gpio 的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有: python GPIO 开发语言--python 简单介绍- ...

  6. linux设备驱动程序--gpio控制

    gpio驱动程序 上一章节linux设备驱动程序--创建设备节点章节主要介绍了linux字符设备驱动程序的框架,从这一章节开始我们讲解各种外设的控制,包括gpio,i2c,dma等等,既然是外设,那就 ...

  7. 使用74HC595D扩展树莓派GPIO控制8颗LED发光二极管

    芯片概述 74HC595和74HC595D 电气特性 管脚定义(左:74HC595D 右:74HC595) 管脚符号 管脚序号 管脚含义 备注 QA 15 并行数据输出 接独立的LED发光二极管 QB ...

  8. linux下使用gpio控制代码,zynq linux 下控制gpio的c代码

    在linux下控制gpio可以先用简单的命令行去控制下看看, 1. devmem 0x41200000 32 0x00000005 2.devicetree的结构如下 dip0: gpio_dip_s ...

  9. Linux学习06——线程控制与同步互斥

    概述 学习目标: 理解线程概念和并发特征,分辨线程与进程的区别与联系 掌握多线程应用编程技术,掌握线程间数据传递基本方法 掌握共享变量识别方法,理解多线程访问共享变量可能带来的问题 理解临界资源.临界 ...

最新文章

  1. RHEL/CentOS通用性能优化、安全配置参考
  2. mnist学习实例(1)
  3. js return 后 运行 另_新手入门Nest.js(六) 控制器Resources、路由通配符
  4. 一次心血来潮的C程序编译 makefile
  5. c语言拟合线性直线误差最小,急~~~~~~!!!求解!用C语言编写最小二乘法求数据的拟合曲线~并做出图显示拟合效果!高分悬赏!...
  6. Maven内置常量/环境变量的获取
  7. msql安装(zip)
  8. Python面向对象之接口类(抽象类)
  9. html获取微信code,get-weixin-code.html
  10. SAP MM 如何取到供应商付款条款描述信息?
  11. 【java】String 类型真是不可变的吗
  12. openresty连接mysql_在CentOS 6上使用openresty访问mysql
  13. Web静态服务器-7-gevent版
  14. 我为什么要弃医从(码)农
  15. java 文件比对(四)-- 使用 diffutils
  16. 听我的!千万别学前端开发!
  17. Adobe Photoshop CS5 12.0 Extend 绿色免安装版
  18. kafka接口操作topic
  19. JavaScript-射击比赛成绩单编程
  20. ctfshow-菜狗杯-web(一)

热门文章

  1. ABAP ALV DATA_CHANGED 函数使用说明 (ALV备忘二)
  2. AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search
  3. 今日只为你狂欢-----JAVA线程总结(零基础入门)
  4. 怪物猎人世界取得服务器信息,怪物猎人世界 Steam好友联机服务器选择工具V1.2...
  5. 浩辰CAD参考图剪辑编辑
  6. 因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项目的版本
  7. 银行测试(1)-我国的银行类型
  8. 总结24个Python接单赚钱的平台,兼职月入5000+
  9. win10睡眠风扇仍然转动解决办法。
  10. 艾美捷SequENZ测序级改造型胰蛋白酶用途和技术说明