树莓派4B系统ubuntu18.04,GPIO使用

  • Post author:
  • Post category:其他


树莓派4B系统ubuntu18.04,GPIO使用


系统软硬件说明:树莓派4B,安装系统为适用树莓派的ubuntu18.04,64位系统。


用户可以通过GPIO口和硬件进行数据交互(如UART),控制硬件工作(如LED、蜂鸣器等),读取硬件的工作状态信号(如中断信号)等。


1.使用c语言编程时



wiringPi,使用时需要安装库。

因为本树莓派使用的是ubuntu64位系统,而wiringpi是在32位上使用的,所以安装步骤不同于网上大多数的教程,使用以下方法可以将其安装到64位系统。

Install 安装过程
1.Download from the last Releases. 从Releases下载最新的构建文件。

https://gitee.com/guation/WiringPi-arm64/releases

2.Enable 32-bit support. 开启32位支持。

If you are using Rspberry PI OS, please skip this step.如果你使用Raspberry Pi OS请跳过此步骤。
sudo dpkg --add-architecture armhf
sudo apt update

3.Install the DEB file.安装deb文件。
sudo apt install -f ./wiringpi-*-g.deb(或者直接双击deb文件即可安装)

安装后,查看版本

gpio -v


查看引脚图

gpio readall

wiringPi 适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群。wiringPi 的 API函数和arduino非常相似,这也使得它广受欢迎。作者给出了大量的说明和示例代码,这些示例代码也包括 UART 设备,I2C 设备和 SPI 设备等。


示例代码:led.c

#include <stdio.h>
#include <wiringPi.h>
#define LED0  1   // 设置GPIO1为控制LED的引脚,11pin
int main()
{
    printf("Hello world\n");
    wiringPiSetup();        // 初始化gpio
    pinMode(LED0, OUTPUT);  // 设置gpio0为输出模式
    while (1) {
        // 设置GPIO0为高电平
        printf("Set GPIO0 : H\n");
        digitalWrite(LED0, HIGH);
        delay(4000);
        // 设置GPIO0为低电平
        printf("Set GPIO0 : L\n");
        digitalWrite(LED0, LOW);
        delay(4000);
    return 0;
}

2.使用Python编程时


使用

RPi.GPIO模块

,需要安装,安装过程简单,自行百度。

在RPi.GPIO中,同时支持树莓派上的两种GPIO引脚编号。第一种编号是BOARD编号,这和树莓派电路板上的物理引脚编号相对应。使用这种编号的好处是,你的硬件将是一直可以使用的,不用担心树莓派的版本问题。因此,在电路板升级后,你不需要重写连接器或代码。

第二种编号是BCM规则,是更底层的工作方式,它和Broadcom的片上系统中信道编号相对应。在使用一个引脚时,你需要查找信道号和物理引脚编号之间的对应规则。对于不同的树莓派版本,编写的脚本文件也可能是无法通用的。

但是 python GPIO 库还没有支持 SPI、I2C 或者 1-wire 等总线接口。

示例:led.py

#python
#*coding:utf-8*
#GPIO控制LED灯程序
import RPi.GPIO as GPIO#引入函数库
import time

pin = 12
GPIO.setmode(GPIO.BOARD)#设置引脚编号规则
GPIO.setup(pin, GPIO.OUT)#将11号引脚设置成输出模式

#while True:
GPIO.output(pin, GPIO.HIGH)
time.sleep(5)
GPIO.output(pin, GPIO.LOW)
time.sleep(2)
GPIO.cleanup()



版权声明:本文为weixin_44238235原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。