树莓派wiringPi经常使用的函数介绍
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经常使用的函数介绍的更多相关文章
- 树莓派wiringPi库详解
wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程,等等.java 的pi4j项目也是基于wiringPi的,我最近也在看源代码,到时候整理好了 ...
- python strip()函数 介绍
python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除 ...
- PHP ob_start() 函数介绍
ob_start() 函数介绍: http://www.nowamagic.net/php/php_ObStart.php ob_start()作用: http://zhidao.baidu.com/ ...
- Python开发【第三章】:Python函数介绍
一. 函数介绍 1.函数是什么? 在学习函数之前,一直遵循面向过程编程,即根据业务逻辑从上到下实现功能,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,也就是将之前实现的代码块复 ...
- row_number() OVER(PARTITION BY)函数介绍
OVER(PARTITION BY)函数介绍 开窗函数 Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个 ...
- select与poll函数介绍
select与poll函数介绍 在所有依从POSIX的平台上,select函数使我们可以执行I/O多路转接.传向select的参数告诉内核: 1)我们所关心的描述符 2)对于每个描述符我们所关心的状态 ...
- swift1.2语言函数和闭包函数介绍
swift1.2语言函数和闭包函数介绍 在编程中,随着处理问题的越来越复杂,代码量飞速增加.其中,大量的代码往往相互重复或者近似重复.如果不采有效方式加以解决,代码将很难维护. swift1.2语言函 ...
- ZLG_GUI配置与函数介绍
http://www.docin.com/p-825479457.html ZLG_GUI配置与函数介绍
- oracle下的OVER(PARTITION BY)函数介绍
转自:http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html OVER(PARTITION BY)函数介绍 开窗函数 ...
随机推荐
- Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3 / \ 9 20 / \
class Solution { public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vect ...
- 长沙理工大学第十二届ACM大赛-重现赛
年轮广场 时间限制:1秒 空间限制:131072K 题目描述 在云塘校区,有一个很适合晒太阳的地方————年轮广场 年轮广场可以看成n个位置顺时针围成一个环. 这天,天气非常好,Mathon带着他的小 ...
- POJ——3159Candies(差分约束SPFA+前向星+各种优化)
Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 28071 Accepted: 7751 Descrip ...
- BZOJ 3473 字符串 ——广义后缀自动机
这题就比较有趣了. 首先匹配一遍,然后统计子树叶子节点中包含大于等于k的节点个数(HH的项链) 然后就可以搞了. 关于合法的情况数,显然是l[i]-l[fa[i]],然后向下下传即可(YY一下). # ...
- [luoguP2331] [SCOI2005]最大子矩阵(DP)
传送门 orz不会做... 一个好理解的做法(n^3*k): 分n=1和n=2两种情况考虑. n=1时,预处理出前缀和sum[]. 设f[i][j]为到达第i格,已经放了j个子矩阵的最大和, 那么每次 ...
- 刷题总结——切蛋糕(ssoj)
题目: 切蛋糕 (cake.cpp/c/pas) [问题描述] BG 有一块细长的蛋糕,长度为�. 有一些人要来BG 家里吃蛋糕, BG把蛋糕切成了若干块(整数长度),然后分给这些人.为了公平,每个人 ...
- 论文笔记:Ten years of pedestrian detection, what have we learned?
最近正在研究行人检测,学习了一篇2014年发表在ECCV上的一篇综述性的文章,是对行人检测过去十年的一个回顾,从dataset,main approaches的角度分析了近10年的40多篇论文提出的方 ...
- [ZJOI2007]棋盘制作 (单调栈,动态规划)
题目描述 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个 8 \times 88×8 大小的黑白相间的方阵,对应八八六十四卦, ...
- Numpy 花式索引
记住:花式索引跟切片不一样,它总是将数据复制到新数组中. 一 给定一个列表,返回索引为1,3,4,5,6的数组 2 针对二维数组 需要注意的一点是,对于花式索引.对照下后面的两种方式,查询结果的不同.
- EC++学习笔记(三) 资源管理
条款13:以对象管理资源 资源包括:动态分配内存.文件描述符.网络socket.互斥锁.数据库连接 把资源放进对象内,可以依赖c++的"析构函数自动调用机制"确保资源被释放智能指针 ...