• 在树莓派上控制GPIO常用的编程语言有哪些


    在这里插入图片描述

    树莓派上控制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)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2. C/C++

    这是一门底层语言,控制GPIO需要直接寻址内存,代码较为复杂,但执行效率高,代码如下:

    #include 
    #include 
    
    int main(void) 
    {
        wiringPiSetup();
        pinMode(18, OUTPUT);     
        digitalWrite(18, HIGH);   
        return 0;
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    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
    
    • 1
    • 2
    • 3

    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();
        }
    } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    总结

    综上所述,我们可以根据项目需求选择适合的语言。

    • Python 简单易用,学习曲线低,适合初学者和简单项目。
    • C语言执行效率高,可用于对资源要求高的项目,但学习曲线较波折。
    • Bash:简单的脚本语言,可用于简单的GPIO控制,但不适合复杂项目开发。
    • Java:面向对象语言,学习曲线一般,可用于中等复杂度的GPIO项目开发。

    最后附上一个C实例

    在树莓派上使用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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    具体步骤:

    安装wiringPi库,

    在树莓派终端输入以下命令进行安装:

    sudo apt-get install wiringpi
    
    • 1

    编写C++代码,调用 include 头文件。
    调用 wiringPiSetup() 初始化GPIO控制。
    使用 pinMode() 设置GPIO模式为输出模式。
    使用 digitalWrite() 输出高或低电平,控制GPIO。
    使用 delay() 添加延时,以控制输出时间。

    • 进行交叉编译
    g++ -o example example.cpp -lwiringPi
    
    • 1
    • 执行程序
    sudo ./example
    
    • 1

    GPIO18针脚会输出高低电平, LED会闪烁5次。

  • 相关阅读:
    Nanodet训练自己的数据集
    SpringCloud理解篇
    LeetCode-重新安排行程(C++)
    Aeraki 教程系列(八) | 如何将 Dubbo 服务接入到 Aeraki Mesh?
    基于 SpringBoot + Vue 的在线课堂前后端分离项目
    整个自动驾驶小车001:概述
    [附源码]计算机毕业设计springboot个人博客系统
    MySQL数据库基本操作和完整性约束类型详解
    【虹科案例】极高的精度水平——虹科数字化仪在大型强子对撞机机器保护系统中的应用
    七月集训day06 最长回文子串 —— 一题多解
  • 原文地址:https://blog.csdn.net/no1xium/article/details/130394541