Linux学习~树莓派gpio控制
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控制相关推荐
- 实例4:树莓派GPIO控制舵机转动
实例4:树莓派GPIO控制舵机转动 实验目的 通过背景知识学习,了解舵机的外观及基本运动方式. 了解四足机器人mini pupper腿部单个舵机的组成结构. 通过GPIO对舵机进行转动控制,熟悉PWM ...
- 实例2:树莓派GPIO控制外部LED灯闪烁
实例2:树莓派GPIO控制外部LED灯闪烁 实验目的 通过背景知识学习,了解四足机器人mini pupper搭载的微型控制计算机:树莓派. 通过树莓派GPIO操作的学习,熟悉GPIO的读写控制. 通过 ...
- 树莓派GPIO控制/使用的教程
树莓派GPIO控制/使用的教程 介绍 使用说明 (一)导入库 (二)设置编码规范 (三)引脚设置 (四)电平控制 (五)读取引脚的输入状态 (六)释放GPIO资源 (七)示例代码 (八)PWM设置 一 ...
- Raspberry Pi 4B树莓派 |#入门教程02# 树莓派GPIO控制(Python、C)
树莓派GPIO编号方式 功能物理引脚 从左到右,从上到下:左边奇数,右边偶数:1-40 通过打开终端窗口并运行命令,可以在Raspberry Pi上访问方便的参考pinout.该工具由GPIO零 Py ...
- 树莓派 GPIO 控制
常用开源工程简介 树莓派内核中已经编译自带了 gpio 的驱动,我们常通过一些第三方写好的库函数来完成具体的操作,比较常见的操作库函数有: python GPIO 开发语言--python 简单介绍- ...
- linux设备驱动程序--gpio控制
gpio驱动程序 上一章节linux设备驱动程序--创建设备节点章节主要介绍了linux字符设备驱动程序的框架,从这一章节开始我们讲解各种外设的控制,包括gpio,i2c,dma等等,既然是外设,那就 ...
- 使用74HC595D扩展树莓派GPIO控制8颗LED发光二极管
芯片概述 74HC595和74HC595D 电气特性 管脚定义(左:74HC595D 右:74HC595) 管脚符号 管脚序号 管脚含义 备注 QA 15 并行数据输出 接独立的LED发光二极管 QB ...
- linux下使用gpio控制代码,zynq linux 下控制gpio的c代码
在linux下控制gpio可以先用简单的命令行去控制下看看, 1. devmem 0x41200000 32 0x00000005 2.devicetree的结构如下 dip0: gpio_dip_s ...
- Linux学习06——线程控制与同步互斥
概述 学习目标: 理解线程概念和并发特征,分辨线程与进程的区别与联系 掌握多线程应用编程技术,掌握线程间数据传递基本方法 掌握共享变量识别方法,理解多线程访问共享变量可能带来的问题 理解临界资源.临界 ...
最新文章
- RHEL/CentOS通用性能优化、安全配置参考
- mnist学习实例(1)
- js return 后 运行 另_新手入门Nest.js(六) 控制器Resources、路由通配符
- 一次心血来潮的C程序编译 makefile
- c语言拟合线性直线误差最小,急~~~~~~!!!求解!用C语言编写最小二乘法求数据的拟合曲线~并做出图显示拟合效果!高分悬赏!...
- Maven内置常量/环境变量的获取
- msql安装(zip)
- Python面向对象之接口类(抽象类)
- html获取微信code,get-weixin-code.html
- SAP MM 如何取到供应商付款条款描述信息?
- 【java】String 类型真是不可变的吗
- openresty连接mysql_在CentOS 6上使用openresty访问mysql
- Web静态服务器-7-gevent版
- 我为什么要弃医从(码)农
- java 文件比对(四)-- 使用 diffutils
- 听我的!千万别学前端开发!
- Adobe Photoshop CS5 12.0 Extend 绿色免安装版
- kafka接口操作topic
- JavaScript-射击比赛成绩单编程
- ctfshow-菜狗杯-web(一)
热门文章
- ABAP ALV DATA_CHANGED 函数使用说明 (ALV备忘二)
- AI强度相关的研究:MCTS 蒙特卡洛树搜索 Monte Carlo Tree Search
- 今日只为你狂欢-----JAVA线程总结(零基础入门)
- 怪物猎人世界取得服务器信息,怪物猎人世界 Steam好友联机服务器选择工具V1.2...
- 浩辰CAD参考图剪辑编辑
- 因为此版本的应用程序不支持其项目类型(.csproj),若要打开它,请使用支持此类型项目的版本
- 银行测试(1)-我国的银行类型
- 总结24个Python接单赚钱的平台,兼职月入5000+
- win10睡眠风扇仍然转动解决办法。
- 艾美捷SequENZ测序级改造型胰蛋白酶用途和技术说明