树莓派GPIO口揭秘:从命名到实战应用全解析

2026-10-15 0 阅读

树莓派因其强大的功能和低廉的价格,成为了电子爱好者、教育者和创客们的热门选择。GPIO(通用输入输出)是树莓派的核心功能之一,它允许用户通过编程控制树莓派上的各种外部设备。本文将深入解析树莓派的GPIO口,从命名规则到实战应用,带你全面了解这一功能。

GPIO命名规则

树莓派的GPIO口命名遵循一定的规则,主要由两部分组成:引脚编号和引脚名称。例如,GPIO 17(P1-11)。

  1. 引脚编号:这是树莓派GPIO引脚的物理编号,从0开始,一直到最后一个引脚。
  2. 引脚名称:这是树莓派官方推荐的引脚名称,通常以字母和数字组合表示,如GPIO、SCL、SDA等。

GPIO引脚类型

树莓派的GPIO引脚分为以下几种类型:

  1. GPIO:通用输入输出引脚,可以配置为输入或输出模式。
  2. 复用功能引脚:除了GPIO功能外,还具有其他功能,如I2C、SPI、UART等。
  3. 电源引脚:提供5V和3.3V电源。
  4. 地线引脚:提供公共地线。

GPIO实战应用

1. 控制LED灯

控制LED灯是GPIO最基础的应用之一。以下是一个简单的示例代码,使用GPIO 17引脚控制LED灯的亮灭。

import RPi.GPIO as GPIO
import time

# 设置GPIO模式
GPIO.setmode(GPIO.BCM)
# 设置GPIO 17为输出模式
GPIO.setup(17, GPIO.OUT)

try:
    while True:
        # 打开LED灯
        GPIO.output(17, GPIO.HIGH)
        time.sleep(1)
        # 关闭LED灯
        GPIO.output(17, GPIO.LOW)
        time.sleep(1)
except KeyboardInterrupt:
    pass
finally:
    # 清理GPIO资源
    GPIO.cleanup()

2. 读取按钮状态

读取按钮状态是GPIO的另一个常见应用。以下是一个示例代码,使用GPIO 27引脚读取按钮状态。

import RPi.GPIO as GPIO
import time

# 设置GPIO模式
GPIO.setmode(GPIO.BCM)
# 设置GPIO 27为输入模式,并启用内部上拉电阻
GPIO.setup(27, GPIO.IN, pull_up_down=GPIO.PUD_UP)

try:
    while True:
        if GPIO.input(27) == GPIO.LOW:
            print("按钮被按下")
        time.sleep(0.1)
except KeyboardInterrupt:
    pass
finally:
    # 清理GPIO资源
    GPIO.cleanup()

3. 使用I2C通信

树莓派的GPIO还可以用于I2C通信。以下是一个示例代码,使用GPIO 2和GPIO 3引脚与I2C设备通信。

import smbus
import time

# 初始化I2C总线
bus = smbus.SMBus(1)

# 设置I2C设备地址
address = 0x48

# 读取I2C设备数据
def read_sensor():
    data = bus.read_i2c_block_data(address, 0x00, 2)
    return data

try:
    while True:
        temperature = read_sensor()
        print("温度:", temperature[0] * 0.125, "摄氏度")
        time.sleep(1)
except KeyboardInterrupt:
    pass
finally:
    # 清理GPIO资源
    GPIO.cleanup()

总结

通过本文的介绍,相信你已经对树莓派的GPIO口有了更深入的了解。GPIO是树莓派的核心功能之一,通过编程控制GPIO引脚,可以实现各种创意项目。希望本文能帮助你更好地利用树莓派的GPIO功能,发挥你的创意。

分享到: