树莓派wiringPi库 |
(一) wiringPi库简介
树莓派的wiringPi库提供了很多接口,让开发简单便捷
驱动接口:
- IO口: input output
- PWM: 电机调速、灯光亮度
- 串口: uart
- IIC
- SPI
- IIS
- flash
等等
函数接口:
- 硬件初始化函数
- 通用GPIO控制函数
- 时间控制函数
- 中断
- 多线程
- PWM
- 串口通信
等等
(二) 查看引脚编号表
gpio readall
(三) wring库API
使用wiringPi库时,必须在执行任何操作前初始化树莓派且编译时加入-lwiringPi,否则程序不能正常工作
(1) 硬件初始化函数
1. wiringPiSetup函数
功能:初始化树莓派引脚,程序使用wiringPi引脚编号表
#include <wiringPi.h>
int wiringPiSetup (void)
- 返回值
成功:返回执行状态,失败:返回-1
2. wiringPiSetupGpio函数
功能:初始化树莓派引脚,程序使用BCM引脚编号表
#include <wiringPi.h>
int wiringPiSetupGpio (void)
- 返回值
成功:返回执行状态,失败:返回-1
转载:树莓派API大全
(四) 应用
使用树莓派控制4路继电器
#include <wiringPi.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SW1 29
#define SW2 28
#define SW3 27
#define SW4 26
int main()
{
char cmd[12];
if (wiringPiSetup() == -1) {
printf("初始化失败\n");
exit(-1);
}
pinMode(SW1, OUTPUT);
pinMode(SW2, OUTPUT);
pinMode(SW3, OUTPUT);
pinMode(SW4, OUTPUT);
digitalWrite(SW1, HIGH);
digitalWrite(SW2, HIGH);
digitalWrite(SW3, HIGH);
digitalWrite(SW4, HIGH);
while(1) {
printf("请输入1/2/3/4/all on/off\n");
memset(cmd, '\0', sizeof(cmd));
gets(cmd);
if (!strcmp("1 on", cmd)) {
digitalWrite(SW1, LOW);
continue;
} else if (!strcmp("1 off", cmd)) {
digitalWrite(SW1, HIGH);
continue;
}
if (!strcmp("2 on", cmd)) {
digitalWrite(SW2, LOW);
continue;
} else if (!strcmp("2 off", cmd)) {
digitalWrite(SW2, HIGH);
continue;
}
if (!strcmp("3 on", cmd)) {
digitalWrite(SW3, LOW);
continue;
} else if (!strcmp("3 off", cmd)) {
digitalWrite(SW3, HIGH);
continue;
}
if (!strcmp("4 on", cmd)) {
digitalWrite(SW4, LOW);
continue;
} else if (!strcmp("4 off", cmd)) {
digitalWrite(SW4, HIGH);
continue;
}
if (!strcmp("all on", cmd)) {
digitalWrite(SW1, LOW);
digitalWrite(SW2, LOW);
digitalWrite(SW3, LOW);
digitalWrite(SW4, LOW);
continue;
} else if (!strcmp("all off", cmd)) {
digitalWrite(SW1, HIGH);
digitalWrite(SW2, HIGH);
digitalWrite(SW3, HIGH);
digitalWrite(SW4, HIGH);
continue;
} else {
printf("请输入正确指令\n");
}
}
return 0;
}