1.void pinMode (int pin, int mode) ;

这个函数式设置pin脚的输入和输出模式以及PWM的输入和输出模式。在wiringPi中仅仅有 pin 1 (BCM_GPIO 18)是支持PWM的输出的。

2.void digitalWrite (int pin, int value) ;

这个函数式用来设置pin脚的高低电平的,当我们写HIGH or LOW (1 or 0)的时候pin脚的mode必须为输出模式。

3.void digitalWriteByte (int value) ;

这个函数能够将8位字节写给8个GPIO pin脚,这是设置8个pin脚值的最快的方式。

4.void pwmWrite (int pin, int value) ;

这个函数是给PWM寄存器写入值然后控制GPIO的值的,写入的值必须是0-1024.

5.int digitalRead (int pin) ;

这个函数是读取GPIO的pin脚的电平高低然后返回读取的值。

6.void pullUpDnControl (int pin, int pud) ;

这个函数是设置GPIO的pin脚是否接上拉电阻和下拉电阻的。函数的參数pud必须设置。当设置为PUD_OFF时表示没有上拉电阻和下拉电阻。当设置为PUD_DOWN 时为下拉电阻。设置为PUD_UP是为上拉电阻。



PWM的控制:

1.pwmSetMode (int mode) ;

这个函数是设置PWM的占空比模式一般为50%占空比和占空比可调模式。

树莓派默认是50%占空比模式,我们能够通过PWM_MODE_BAL 和PWM_MODE_MS这两个參数来设置。



2.pwmSetRange (unsigned int range) ;

这个函数是设置PWM寄存器写入的范围。一般默觉得1024.

3.pwmSetClock (int divisor) ;

这个函数的设置PWM时钟的分频因子。



定时函数:

1.void delay (unsigned int howLong)

这个是毫秒级的延时函数。

2.void delayMicroseconds (unsigned int howLong)

微秒级的延时函数



关于中断的函数:

1.int waitForInterrupt (int pin, int timeOut) ;

这一个等待事件中断函数。timeout參数是毫秒级别的參数,当为-1时代表永远等待中断状态。假设错误发生返回值是-1,0表示超时。1表示成功中断。

调用这个函数之前我们须要对GPIO进行初始化。

比如我们要设置GPIO 0为等待下降沿中断:

我们须要在执行程序之前先终端执行   gpio edge 0 falling

2.int wiringPiISR (int pin, int edgeType,  void (*function)(void)) ;

这个函数是利用一个函数作为參数来获取在特定的GPIO pin脚的中断。edge_Type參数能够设定为 INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP.

其中断发生的时候function将被调用。调用function之前会先清除对应的标志位。这就使得随后的中断不会被影响。





熟悉了这些函数后对写GPIO的操作的应用程序会有所帮助。

















树莓派wiringPi经常使用的函数介绍的更多相关文章

  1. 树莓派wiringPi库详解

    wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程,等等.java 的pi4j项目也是基于wiringPi的,我最近也在看源代码,到时候整理好了 ...

  2. python strip()函数 介绍

    python strip()函数 介绍,需要的朋友可以参考一下   函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm)        删除s字符串中开头.结尾处,位于 rm删除 ...

  3. PHP ob_start() 函数介绍

    ob_start() 函数介绍: http://www.nowamagic.net/php/php_ObStart.php ob_start()作用: http://zhidao.baidu.com/ ...

  4. Python开发【第三章】:Python函数介绍

    一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...

  5. row_number() OVER(PARTITION BY)函数介绍

      OVER(PARTITION BY)函数介绍 开窗函数               Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个 ...

  6. select与poll函数介绍

    select与poll函数介绍 在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接.传向select的参数告诉内核: 1)我们所关心的描述符 2)对于每个描述符我们所关心的状态 ...

  7. swift1.2语言函数和闭包函数介绍

    swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...

  8. ZLG_GUI配置与函数介绍

    http://www.docin.com/p-825479457.html ZLG_GUI配置与函数介绍

  9. oracle下的OVER(PARTITION BY)函数介绍

    转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数          ...

随机推荐

  1. 学习笔记7——wp版本更新需要注意的问题

    平时开发时应该避免修改wp的核心代码, 因为在升级wp版本时,核心代码都会被覆盖, wp升级时只有wp-content文件夹不会被覆盖.

  2. SQL注入与xss

    1. 什么是SQL注入 所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.通过递交参数构造巧妙的SQL语句,从而成功获取 ...

  3. [BZOJ1579] [Usaco2009 Feb]Revamping Trails 道路升级(分层图最短路 + 堆优化dijk)

    传送门 dis[i][j]表示第i个点,更新了j次的最短路 此题不良心,卡spfa #include <queue> #include <cstdio> #include &l ...

  4. Redis常见配置redis.conf

    redis的配置文件.相信学过SSH或SSM的读者都知道,配置文件的使用在当下开发已十分普遍,希望大家要熟悉习惯这 种开发方式,废话不多说,来开始我们今天的内容吧. 首先得找到 redis 的配置文件 ...

  5. 请问 内网的 dns服务器 为什么和 外网的dns服务器 一样??

    公司内的内网使用192.169.X.X的内网地址,但是在DNS段填写的是210.34.X.X,显然这是一个公网固定IP,我不明白的是:为什么内部网客户端使用的DNS服务器是公网上的IP呢?内网客户端能 ...

  6. SpringBoot + Spring Security 基本使用及个性化登录配置详解

    Spring Security 基本介绍 这里就不对Spring Security进行过多的介绍了,具体的可以参考官方文档 我就只说下SpringSecurity核心功能: 认证(你是谁) 授权(你能 ...

  7. 【HDOJ6225】Little Boxes(Java)

    题意:输入整数a,b,c,d,输出他们的和 a, b, c, d ≤ 2^62 思路:ANS可能会炸long long 队友直接上Java import java.math.BigInteger; i ...

  8. android中自定义下拉框(转)

    android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在 ...

  9. 词法分析器 /c++实现

    #include<iostream> #include<string> #include<vector> #include<map> #include& ...

  10. NFV产品如何才能走向规模商用

    作者简介:王晔,烽火通信科技股份有限公司ICT网络产品线NFV产品总监,高级工程师,研究方向为SDN\NFV\MEC\AI\光通信. 自2013年AT&T率先提出DOMAIN 2.0网络转型计 ...