这是一个符合您所有严格要求的HTML5静态首页。代码结构严谨,SEO优化完善,布局独特(采用非传统的左右不对称及时间轴结合布局),并且包含丰富的树莓派GPIO深度内容。 ```html
欢迎来到树莓派硬件知识库中心 | 专注GPIO引脚深度解析与应用拓展

树莓派GPIO引脚介绍

深入解析 Raspberry Pi 的通用输入输出接口,掌握硬件交互的核心钥匙。
从物理引脚定义到电气特性,从I2C/SPI配置到Python实战,为您提供一站式的树莓派GPIO引脚介绍解决方案。

什么是树莓派GPIO?

在探索 树莓派GPIO引脚介绍 之前,我们需要明确GPIO(General Purpose Input/Output,通用输入/输出)的概念。它是树莓派主板边缘那一排针脚的核心功能集合。通过这排针脚,树莓派不再仅仅是一台微型电脑,而是变成了一个可以控制物理世界的控制器。

无论是点亮一颗LED灯,读取温度传感器的数据,还是驱动复杂的LCD屏幕,都依赖于对这排引脚的正确理解与配置。对于开发者而言,熟练掌握GPIO是进入嵌入式开发领域的必经之路。

⚙️

物理接口

标准的40针排针设计(适用于Pi 2B及后续型号),兼容绝大多数HAT扩展板。引脚排列遵循历史兼容性,确保新旧设备无缝衔接。

⚡

电气特性

工作电压为3.3V。这意味着连接到GPIO引脚的外设必须兼容3.3V逻辑电平,直接连接5V设备可能导致树莓派永久损坏。

🔌

功能复用

大部分引脚支持多重功能(Alt Modes),如UART、SPI、I2C、PWM等,通过软件配置即可切换引脚的物理行为。

电源引脚与电压规范

在进行任何硬件连接前,理解电源引脚是 树莓派GPIO引脚介绍 中最关键的安全环节。树莓派的GPIO头提供了多种电压输入选项,但必须严格区分。

电压引脚说明

引脚编号 名称 电压值 最大电流输出 用途说明
1, 17 3.3V 3.3V DC ~50mA (总和建议) 为外部低功耗传感器或模块供电。
2, 4 5V 5V DC 取决于电源输入 直接连接至USB电源输入,通常用于驱动电机或高功耗设备(需外部电源隔离)。
6, 9, 14, 20, 25, 30, 34, 39 GND 0V N/A 接地引脚。务必确保所有连接设备的GND与树莓派GND共地。

主流通信协议配置指南

现代树莓派开发极少使用简单的数字IO读写,更多时候我们需要通过标准总线协议与外设通信。以下是三种最常用的总线配置方法。

I2C 配置
SPI 配置
UART 配置

I2C (Inter-Integrated Circuit)

I2C使用两根线:SDA(数据线)和SCL(时钟线)。它支持多主机和多从机,通过地址区分设备。

物理引脚:

  • GPIO 2 (SDA)
  • GPIO 3 (SCL)

启用步骤:

sudo raspi-config

选择 "Interfacing Options" -> "I2C" -> "Yes"

sudo reboot

安装工具检测设备

sudo apt-get install i2c-tools i2cdetect -y 1

SPI (Serial Peripheral Interface)

SPI是一种高速、全双工通信总线,通常用于连接显示屏、SD卡或高速ADC。它需要4根线:MOSI, MISO, SCLK, CE。

物理引脚(SPI0):

  • GPIO 10 (MOSI)
  • GPIO 9 (MISO)
  • GPIO 11 (SCLK)
  • GPIO 8 (CE0) / GPIO 7 (CE1)

启用步骤:

sudo raspi-config

选择 "Interfacing Options" -> "SPI" -> "Yes"

UART (Universal Asynchronous Receiver-Transmitter)

UART用于串行通信,常用于树莓派的控制台调试或与蓝牙/WiFi模块连接。注意:启用硬件UART后,控制台功能可能会受到影响。

物理引脚(Mini UART / PL011):

  • GPIO 14 (TXD) - 发送
  • GPIO 15 (RXD) - 接收

启用步骤:

sudo raspi-config

选择 "Interfacing Options" -> "Serial Port"

询问 "Login shell accessible over serial?" -> No

询问 "Serial port hardware enabled?" -> Yes

40针 GPIO 引脚定义详解

为了帮助您快速查阅,以下提供了标准的树莓派3B+/4B/5系列通用的40针GPIO引脚表。请注意,引脚编号分为“物理引脚号(Board Pin)”和“BCM编号(GPIO Number)”,编程时通常使用BCM编号。

物理Pin BCM GPIO 物理Pin BCM GPIO 功能描述
1 — 2 — 5V Power
3 2 4 — I2C SDA / 5V Power
5 3 6 — I2C SCL / GND
7 4 8 14 GPIO4 / UART TXD
9 — 10 15 GND / UART RXD
11 17 12 18 GPIO17 / SPI CE1
13 27 14 — GPIO27 / GND
15 22 16 23 GPIO22 / GPIO23
17 — 18 24 3.3V Power / SPI MOSI
19 10 20 — SPI MOSI / GND
21 9 22 25 SPI MISO / GPIO25
23 11 24 8 SPI SCLK / SPI CE0
25 — 26 7 GND / SPI CE1
27 0 28 1 I2C SDA (Header) / I2C SCL (Header)
29 5 30 — GPIO5 / GND
31 6 32 12 GPIO6 / GPIO12
33 13 34 — GPIO13 / GND
35 19 36 16 GPIO19 / GPIO16
37 26 38 20 GPIO26 / GPIO20
39 — 40 21 GND / GPIO21

Python GPIO 编程实战

掌握引脚定义后,下一步是通过代码控制硬件。Python是树莓派最流行的编程语言,得益于 gpiozero 和 RPi.GPIO 库的支持。

示例1:使用 gpiozero 控制LED(推荐新手)

gpiozero 库封装了底层细节,使代码更加简洁易读。

from gpiozero import LED
from time import sleep

定义LED连接的引脚号 (BCM模式)

led = LED(17) while True: led.on() print("LED 已开启") sleep(1) led.off() print("LED 已关闭") sleep(1)

示例2:使用 RPi.GPIO 读取按钮状态

这是一个更底层的示例,展示了如何配置引脚为输入模式并检测边沿触发。

import RPi.GPIO as GPIO
import time

使用 BCM 编号系统

GPIO.setmode(GPIO.BCM)

定义引脚

btn_pin = 2 led_pin = 17

配置引脚

GPIO.setup(btn_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(led_pin, GPIO.OUT) try: while True: # 读取按钮状态 (按下为Low) if GPIO.input(btn_pin) == False: GPIO.output(led_pin, GPIO.HIGH) print("按钮按下,LED点亮") else: GPIO.output(led_pin, GPIO.LOW) time.sleep(0.2) except KeyboardInterrupt: GPIO.cleanup() print("程序退出,清理引脚")
```
斌知网
蜀ICP备2026017620号-5