首页 » 网站推广 » php掌握wiringpi技巧_树莓派运用WiringPi

php掌握wiringpi技巧_树莓派运用WiringPi

访客 2024-11-26 0

扫一扫用手机浏览

文章目录 [+]

WiringPi是运用于树莓派平台的GPIO掌握库函数,WiringPi遵守GUN Lv3。
wiringPi利用C或者C++开拓并且可以被其他措辞包转,例如python、ruby或者PHP等。
WiringPi中的函数类似于Arduino的wiring系统,这使得熟习arduino的用户利用wringPi更为方便。

树莓派具有26个普通IO引脚,利用端口复用时支持I2C、SPI和UART通信协议。
不该用复用时也可以作为普通端口利用。
wiringPi包括一套gpio掌握命令,利用gpio命令时可以掌握树莓派GPIO管脚。
用户可以利用gpio命令通过shell脚本掌握或查询GPIO管脚。
wiringPi是可以扩展的,用户可以利用wiringPi的内部模块或把自定义的扩展模块集成到wiringPi中以扩展更多的GPIO接口或支持更多的功能。

php掌握wiringpi技巧_树莓派运用WiringPi

摘自:

php掌握wiringpi技巧_树莓派运用WiringPi
(图片来自网络侵删)

https://blog.csdn.net/qintaiwu/article/details/73741722

二、安装

sudo apt-get install gitgit clone https://github.com/WiringPi/WiringPicd wiringPigit pull./build

测试:检测GPIO口

gpio -v

三、常用gpio命令

gpio readallgpio -g mode 20 outgpio -g mode 21 ingpio -g write 20 1 && gpio -g write 21 1 && gpio -g write 16 1gpio -g read 20四、 python wiringpi 环境安装

如果python版本默认是2.0,可以先改一下版本:(现在新版本树莓派一样平常带python2.7和python3两个版本,可以直策应用python3)

sudo apt-get install python3 # 如果没有安装3,先安装sudo rm /usr/bin/python # 删除旧连接sudo ln -s /usr/bin/python3.5 /usr/bin/python

安装wiringpi

sudo apt-get install python3-pippip install wiringpipip list | grep wiring # 检讨安装

命令行设置引脚:

gpio -g mode 17 outgpio -g write 17 0 //设置为低电平五、WiringPi GPIO 和 BCM2835 GPIO映射关系

命令行设置示例:

gpio readdallgpio -g mode 17 outgpio -g write 17 0 //设置为低电平五、利用

一样平常分为4步骤:

上面的代码非常大略,可以分为四个部分——wiringPiSetupi初始化、pinMode设置IO为输出方向、digitalWrite输出高电平或低电平和delay系统延时函数。

六、C 部分示例

wiringPiSetup(); //初始化 int i = 0;// 设置IO口全部为输出状态for( i = 0 ; i < 8 ; i++ ) pinMode(i, OUTPUT); for (;;) { for( i = 0 ; i < 8 ; i++ ) { // 点亮500ms 熄灭500ms // 输出 digitalWrite(i, HIGH); delay(500); digitalWrite(i, LOW); delay(500); } }// 读取引脚状态digitalRead(BtnPin); //1 输入高电平 0 输入低电平六、Python 部分示例

import wiringpi #老版本是导入wiringpi2,新版本改为wiringpiwiringpi.wiringPiSetup() #设置GPIO编号为wPi办法wiringpi.wiringPiSetupSys() #设置GPIO编号为BCM办法wiringpi.wiringPiSetupGpio() #设置GPIO编号为BCM办法wiringpi.pinMode(6,1) #设置pin6为输出wiringpi.digitalWrite(6,1) #pin6电平置为高wiringpi.digitalRead(6) #读取pin6的电平七、常用函数

### 初始化函数

### 通用GPIO事情模式

#### 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) ;

写入的值必须是0-1024。
输出一个值到PWM寄存器,掌握PWM输出。
pin只能是wiringPi 引脚编号下的1脚(BCM下的18脚)

#### 5.int digitalRead (int pin) ;

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

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

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

#### 7. void analogWrite(int pin, int value)

pin:引脚

value:输出的仿照量

仿照量输出 树莓派的引脚本身是不支持AD转换的,也便是不能利用仿照量的API,

须要增加其余的模块

#### 8. int analogRead (int pin)

pin:引脚

返回:引脚上读取的仿照量

仿照量输入 树莓派的引脚本身是不支持AD转换的,也便是不能利用仿照量的API,须要增加其余的模块

### 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)

微秒级的延时函数

#### 3. unsigned int millis (void)

这个函数返回 一个 从你的程序实行 wiringPiSetup 初始化函数(或者wiringPiSetupGpio ) 到 当前韶光 经由的 毫秒数。

返回类型是unsigned int,最大可记录 大约49天的毫秒时长。

#### 4. unsigned int micros (void)

这个函数返回 一个 从你的程序实行 wiringPiSetup 初始化函数(或者wiringPiSetupGpio ) 到 当前韶光 经由的 微秒数。

返回类型是unsigned int,最大可记录 大约71分钟的时长。

### 关于中断的函数:

#### 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之前会先打消相应的标志位,这就使得随后的中断不会被影响。

标签:

相关文章

语言栏,现代科技与人类语言的完美融合

随着科技的飞速发展,人类的生活越来越便捷。其中,电脑语言栏作为现代科技与人类语言的完美融合,为我们带来了极大的便利。本文将从语言栏...

网站推广 2024-12-29 阅读0 评论0

语言框架,沟通的艺术与方法

在人际交往中,沟通是不可或缺的一环。而语言框架作为一种沟通的艺术与技巧,对于提高沟通效果、促进人际关系具有重要作用。本文将从语言框...

网站推广 2024-12-29 阅读0 评论0

语言暴力,心灵毒瘤的蔓延与反思

语言是人与人沟通的桥梁,在现实生活中,却有一部分人将语言当作伤害他人的利器,用恶毒的语言对他人进行欺负。这种现象,我们称之为“语言...

网站推广 2024-12-29 阅读0 评论0

语言教程软件,助力英语学习的新时代利器

随着科技的飞速发展,人工智能逐渐成为教育领域的有力助手。在英语学习方面,语言教程软件应运而生,为广大学子提供了便捷、高效的学习途径...

网站推广 2024-12-29 阅读0 评论0