精帖  树莓派常用编程语言介绍 控制GPIO编程语言示例 通用输入输出 编程语言,树莓派5,树莓派4B,树莓派3B/3B+,树莓派zero系列

By 达布希

2023-10-15 19:03:45

浏览量754

已赞8

Image

树莓派可以使用我们常见的一些编程语言,不同语言都有自己的特点和适应场景,用户可根据自己需求和学习程度进行选择。大概举例可以参考本文。


树莓派控制GPIO引脚输入与输出 (General Purpose Input Output,通用输入输出接口),比较常用和简单的编程语言


Image

一:Python

树莓派官方主推荐的编程语言,也是树莓派用户常用最多的,简洁、易学、功能强大,适合初学者和专业开发者。能实现各种功能,如控制GPIO,读取传感器数据,编写Web应用..... 具有丰富的库和模块。能进行各种扩展与开发。

在控制GPIO时只需要导入RPi.GPIO库, 代码如下:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM) 
GPIO.setup(18, GPIO.OUT)
GPIO.output(18, GPIO.HIGH)


Image

二:C/C++

这是一门传统的底层语言,也是树莓派常用编程语言之一,使用C/C++可以轻松获取更高的性能及底层的控制能力。它的代码较为复杂, 但执行效率很高,可以深入学习树莓派的底层。如驱动开发、图形界面开发,使用难度相对算高,适合有一定编程经验的开发者。在树莓派上用C/C++控制GPIO需要直接寻址内存, 代码如下:

#include <stdio.h>
#include <wiringPi.h>

int main(void) 
{
    wiringPiSetup();
    pinMode(18, OUTPUT);     
    digitalWrite(18, HIGH);   
    return 0;
} 


Image

三:Bash

这是属于Linux系统下的一种脚本语言,也是 Linux 的核心部分,它允许你使用各种诸如 cd、ls、cat 等的命令与 Linux 内核进行交互。当然树莓派也是安装Linux的系统、如果控制树莓派上的GPIO需要调用 buy来实现,代码如下:

echo "18" > /sys/class/gpio/export  
echo "out" > /sys/class/gpio/gpio18/direction   
echo "1" > /sys/class/gpio/gpio18/value

Image

四:Java

这是一种跨平台的编程语言,在树莓派上也可以使用。Java具有良好的可移植性和可扩展性,适合开发大型应用和企业,是作为静态面向对象编程语言的代表。不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。在树莓派上可以使用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();
    }
} 

五:JavaScript

是一种脚本语言,广泛应用于Web开发。在树莓派上使用JavaScript可以实现Web应用、物联网应用等。树莓派可以使用Node.js来运行JavaScript程序,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,具有高性能和丰富的库。适合初学者Web开发使用。

六:Shell脚本

shell脚本是一种命令行脚本语言,可以用于工业自动化任务和系统管理。在树莓派上使用shell脚本可以实现各种自动化任务,如备份、定时。编程相对简单,适合快速实现一些简单功能与需求



总结:综合上面的几种编程语言,我们可以根据项目的需求选择合适的语言,

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库安装步骤:

在树莓派的图形终端LX或者DSO命令模式 输入以下命令进行安装:

sudo apt-get install wiringpi

编写C++代码,调用 include <wiringPi.h> 头文件。

调用 wiringPiSetup() 初始化GPIO控制。

使用 pinMode() 设置GPIO模式为输出模式。

使用 digitalWrite() 输出高或低电平,控制GPIO。

使用 delay() 添加延时,以控制输出时间。


进行交叉编译

g++ -o example example.cpp -lwiringPi
执行程序

sudo ./example
如果安装失败或者更详细的过程可以参考这个教程  树莓派安装Wiringpi库完整教程



本文章最后由 超级版主2023-11-12 19:50 编辑
发表评论
请先 注册/登录 后参与评论

已有1 发布

默认   热门   正序   倒序
查看更多评论
(8) 分享
分享

扫二维码或复制链接分享该篇文章

取消
已有0次打赏
本站免责声明
1、本站资源,均来自网络或个人用户发布,版权归原作者,所有资源和文章仅限用于学习和研究目的 。
2、不得用于商业或非法用途,否则,一切责任由该用户承担 !

侵权删除请致信 E-Mail:cxg88@qq.com