https://blog.csdn.net/xundh/article/details/81806526
命令行使用示例:
命令行设置引脚:
gpio readdall
gpio -g mode 17 out
gpio -g write 17 0 //设置为低电平
一般分为4步骤:
上面的代码非常简单,可以分为四个部分——wiringPiSetupi初始化、pinMode设置IO为输出方向、digitalWrite输出高电平或低电平和delay系统延时函数。
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 输入低电平
import wiringpi #老版本是导入wiringpi2,新版本改为wiringpi
wiringpi.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的电平
---------------------
函数 | 返回值 | 说明 |
---|---|---|
int wiringPiSetup (void) | 返回:执行状态,-1表示失败 | 当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi 引脚编号表。引脚的编号为 0~16 |
int wiringPiSetupGpio (void) | 返回执行状态,-1表示失败 | 当使用这个函数初始化树莓派引脚时,程序中使用的是BCM GPIO 引脚编号表。 |
wiringPiSetupPhys(void) | 不常用,不做介绍 | |
wiringPiSetupSys (void) | 不常用,不做介绍 |
这个函数式设置pin脚的输入和输出模式以及PWM的输入和输出模式。在wiringPi中只有 pin 1 (BCM_GPIO 18)是支持PWM的输出的。
这个函数式用来设置pin脚的高低电平的,当我们写HIGH or LOW (1 or 0)的时候pin脚的mode必须为输出模式。
这个函数可以将8位字节写给8个GPIO pin脚,这是设置8个pin脚值的最快的方式。
写入的值必须是0-1024。输出一个值到PWM寄存器,控制PWM输出。pin只能是wiringPi 引脚编号下的1脚(BCM下的18脚)
这个函数是读取GPIO的pin脚的电平高低然后返回读取的值。
这个函数是设置GPIO的pin脚是否接上拉电阻和下拉电阻的。函数的参数pud必须设置,当设置为PUD_OFF时表示没有上拉电阻和下拉电阻,当设置为PUD_DOWN 时为下拉电阻,设置为PUD_UP是为上拉电阻。
pin:引脚
value:输出的模拟量
模拟量输出 树莓派的引脚本身是不支持AD转换的,也就是不能使用模拟量的API,
需要增加另外的模块
pin:引脚
返回:引脚上读取的模拟量
模拟量输入 树莓派的引脚本身是不支持AD转换的,也就是不能使用模拟量的API,需要增加另外的模块
这个函数是设置PWM的占空比模式一般为50%占空比和占空比可调模式。树莓派默认是50%占空比模式,我们可以通过PWM_MODE_BAL 和PWM_MODE_MS这两个参数来设置。
这个函数是设置PWM寄存器写入的范围,一般默认为1024.
这个函数的设置PWM时钟的分频因子。
这个是毫秒级的延时函数。
微秒级的延时函数
这个函数返回 一个 从你的程序执行 wiringPiSetup 初始化函数(或者wiringPiSetupGpio ) 到 当前时间 经过的 毫秒数。
返回类型是unsigned int,最大可记录 大约49天的毫秒时长。
这个函数返回 一个 从你的程序执行 wiringPiSetup 初始化函数(或者wiringPiSetupGpio ) 到 当前时间 经过的 微秒数。
返回类型是unsigned int,最大可记录 大约71分钟的时长。
这一个等待事件中断函数,timeout参数是毫秒级别的参数,当为-1时代表永远等待中断状态。如果发生错误返回值是-1,0表示超时,1表示成功中断。调用这个函数之前我们需要对GPIO进行初始化。
例如我们要设置GPIO 0为等待下降沿中断:
我们需要在运行程序之前先终端运行 gpio edge 0 falling
这个函数是利用一个函数作为参数来获取在特定的GPIO pin脚的中断。edge_Type参数可以设定为 INT_EDGE_FALLING, INT_EDGE_RISING, INT_EDGE_BOTH or INT_EDGE_SETUP.
当中断发生的时候function将被调用,调用function之前会先清除相应的标志位,这就使得随后的中断不会被影响。
wiringPI 库详细分析参见:
https://blog.csdn.net/xukai871105/article/details/17881433
更多函数参见:
https://www.cnblogs.com/lulipro/p/5992172.html