在树莓派上控制GPIO(General Purpose Input Output,通用输入输出接口),比较常用和简单的编程语言有:
这是树莓派官方推荐语言,控制GPIO只需要导入RPi.GPIO库,简单易学,代码如下:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)
这是一门底层语言,控制GPIO需要直接寻址内存,代码较为复杂,但执行效率高,代码如下:
#include
#include
int main(void)
{
wiringPiSetup();
pinMode(18, OUTPUT);
digitalWrite(18, HIGH);
return 0;
}
这是Linux系统下的一脚本语言,控制GPIO需要调用 buy来实现,代码如下:
echo "18" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio18/direction
echo "1" > /sys/class/gpio/gpio18/value
这是一门面向对象的语言,在树莓派上可以使用Pi4J库来控制GPIO,代码如下:
import com.pi4j.io.gpio.*;
public class GpioExample {
public static void main(String[] args) throws Exception {
final GpioController gpio = GpioFactory.getInstance();
final GpioPinDigitalOutput pin = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_18);
pin.high();
}
}
综上所述,我们可以根据项目需求选择适合的语言。
在树莓派上使用C++控制GPIO,可以使用wiringPi库,这个程序会使GPIO18(Pin12)输出高低电平轮换,实现闪烁5次的效果。
#include
int main() {
wiringPiSetup(); //初始化wiringPi库
pinMode(18, OUTPUT); //将GPIO18设置为输出模式
for(int i=0; i<5; i++) { //循环闪烁5次
digitalWrite(18, HIGH); //GPIO18输出高电平
delay(500); //延时500ms
digitalWrite(18, LOW); //GPIO18输出低电平
delay(500);
}
return 0;
}
安装wiringPi库,
在树莓派终端输入以下命令进行安装:
sudo apt-get install wiringpi
编写C++代码,调用 include
头文件。
调用 wiringPiSetup()
初始化GPIO控制。
使用 pinMode()
设置GPIO模式为输出模式。
使用 digitalWrite()
输出高或低电平,控制GPIO。
使用 delay()
添加延时,以控制输出时间。
g++ -o example example.cpp -lwiringPi
sudo ./example
GPIO18针脚会输出高低电平, LED会闪烁5次。