在树莓派上控制GPIO常用的编程语言

2023年5月26日 362点热度 0人点赞 0条评论

在树莓派上控制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次。

暗暗

这个人很懒,什么都没留下

文章评论