
在树莓派上控制GPIO(General Purpose Input Output,通用输入输出接口),比较常用和简单的编程语言有:
1. Python
这是树莓派官方推荐语言,控制GPIO只需要导入RPi.GPIO库,简单易学,代码如下:
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) 
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)
 
2. C/C++
这是一门底层语言,控制GPIO需要直接寻址内存,代码较为复杂,但执行效率高,代码如下:
#include <stdio.h>
#include <wiringPi.h>
int main(void) 
{
    wiringPiSetup();
    pinMode(18, OUTPUT);     
    digitalWrite(18, HIGH);   
    return 0;
} 
 
3 Bash
这是Linux系统下的一脚本语言,控制GPIO需要调用 buy来实现,代码如下:
echo "18" > /sys/class/gpio/export  
echo "out" > /sys/class/gpio/gpio18/direction   
echo "1" > /sys/class/gpio/gpio18/value
 
4. Java
这是一门面向对象的语言,在树莓派上可以使用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();
    }
} 
 
总结
综上所述,我们可以根据项目需求选择适合的语言。
- Python 简单易用,学习曲线低,适合初学者和简单项目。
 - C语言执行效率高,可用于对资源要求高的项目,但学习曲线较波折。
 - Bash:简单的脚本语言,可用于简单的GPIO控制,但不适合复杂项目开发。
 - Java:面向对象语言,学习曲线一般,可用于中等复杂度的GPIO项目开发。
 
最后附上一个C实例
在树莓派上使用C++控制GPIO,可以使用wiringPi库,这个程序会使GPIO18(Pin12)输出高低电平轮换,实现闪烁5次的效果。
#include <wiringPi.h> 
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 <wiringPi.h> 头文件。
 调用 wiringPiSetup() 初始化GPIO控制。
 使用 pinMode() 设置GPIO模式为输出模式。
 使用 digitalWrite() 输出高或低电平,控制GPIO。
 使用 delay() 添加延时,以控制输出时间。
- 进行交叉编译
 
g++ -o example example.cpp -lwiringPi
 
- 执行程序
 
sudo ./example
 
GPIO18针脚会输出高低电平, LED会闪烁5次。



















