树莓派 wiringpi 读取引脚_从WiringPi入手学树莓派编程(1)-简介

23987b151ce405c141bafcf1a90f2a3b.png

WiringPi是一个用C语言编写的树莓派(RaspberryPi)软件包,可用于树莓派GPIO引脚控制、串口通信、SPI通信及I2C通信等功能,非常适合熟悉C/C++的人员在树莓派上进行软件开发。WiringPi的作者是Gordon Henderson,其官方网址为http://wiringpi.com。WiringPi遵循GNU GPLv3公约,任何人都可以免费使用该软件包。说实话,我在使用WiringPi进行树莓派程序开发时感觉非常方便,在这里也对作者表示衷心的感谢,我计划写一个系列的文章对WiringPi进行介绍。今天这篇文章,我们先来认识下WiringPi。

WiringPi作者Gordon Henderson声明:

WiringPi is developed directly on a Raspberry Pi running 32-bit Raspbian. I do not support any other platform, cross compiling or operating systems.
翻译:WiringPi是直接在树莓派32位操作系统Raspbin上开发的,不支持其它操作系统、平台或交叉编译环境。

1、WiringPi的安装与更新
WiringPi预装(Pre-installed)在标准的树莓派操作系统Raspbin中。可以使用下面的命令进行安装:

$sudo apt-get install wiringpi
如果需要更新WiringPi,可以使用系统更新命令:
$sudo apt-get update
$sudo apt-get upgrade
WiringPi安装完成后,可以使用下面的命令测试是否安装成功:
$sudo gpio -v
如果系统中安装了WiringPi,该命令可以显示出其版本号、作者及当前树莓派的一些信息;如下图所示:

a5370aeb75f1b2cc03717346cd78f060.png
gpio -v

2、WiringPi的引脚定义
WiringPi对树莓派物理引脚进行了封装,定义了一套自己的引脚编号。
如果要查看当前树莓派的引脚编号,可以使用如下命令:
$sudo gpio readall
下面这张图是gpio readall读出的树莓派3B的引脚定义:

5d54404e4d50ef44384c6d98283ed35a.png
gpio readall

树莓派的物理引脚、BCM引脚和WiringPi引脚是三种不同的定义,下面这张图看起来更清晰美观一些:

4d60008cf2012a184a0e59513efba1b0.png

3、WiringPi的库函数
WiringPi提供了很多函数用于各种功能,包括如下库:
3.1 WiringPi配置函数(WiringPi Setup functions);
3.2 WiringPi核心函数(WiringPi Core functions);
3.3 树莓派专用函数(Raspberry Pi Specific functions);
3.4 时间函数(Time functions);
3.5 程序优先级/中断/线程函数(Process priority/interrupts/thread functions);
3.6 串口通信库函数(Serial Library functions);
3.7 SPI通信库函数(SPI Library functions);
3.8 I2C通信库函数(IC2 Library functions);
3.9 移位库函数(Shift Library functions);
3.10 软件PWM库函数(Software PWM Library functions);
3.11 软件方波/音频库函数(Software Tone Library functions);4、WiringPi的使用
要使用WiringPi软件包,必须包含<wiringPi.h>头文件,比如:
#include <wiringPi.h>
使用其它函数库时还需要包含相应的头文件。

比如,要使用串口通信库时,需要包含<wiringSerial.h>头文件;
在编译源代码时,需要添加链接选项 "-lwiringPi";
下面我们编写一个简单的闪烁LED灯的程序。

该代码来源于WiringPi官网,是一个最基本的使用WiringPi库函数的程序示例,可以一窥树莓派下WiringPi的编程。

LED闪烁灯代码如下图所示:

b6637af18af6cf0f401a3c8d5b79416d.png
闪烁LED灯代码

GCC编译bink.c生成bink程序的代码如下:
$gcc -o blink blink.c -lwiringPi

好了,关于WiringPi的第一篇我们就先介绍这么多。后续文章我们会介绍WiringPi的库函数及使用例程。如果你喜欢这篇文章,可以去官网(方正智芯(founder chip))下载本文PDF版本。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值