树莓派配置gpio
时间: 2025-06-30 15:13:34 浏览: 14
### ### GPIO 的基本组成和功能
树莓派的通用输入输出接口(GPIO)由 40 个针脚组成,这些针脚可以连接外部设备以实现多种功能。其中部分针脚提供固定电压输出,如 5V(2、4 号针脚)、3.3V(1、17 号针脚)以及多个地线针脚(6、9、14、20、25、30、34、39)。通过将电路两端分别接在 5V 和地线之间,可以获得 5V 的电压输入[^1]。
除了基本的电源和接地功能,其他针脚通常编号为 GPIOX(例如 GPIO14),操作系统中使用的是 GPIO 编号而非物理位置编号。某些针脚还支持高级通信协议,如 UART(GPIO14 和 GPIO15)、I2C 和 SPI 等。此外,ID_SD 和 ID_SC(27 和 28 号针脚)用于与扩展板进行 EEPROM 通信。
### ### 配置 GPIO 的软件环境
为了在 Python 中控制 GPIO,需要安装 `RPi.GPIO` 库。可以通过以下命令安装:
```bash
sudo apt update
sudo apt install python3-dev
sudo apt install python3-rpi.gpio
```
安装完成后,可以在 Python 脚本中导入 `RPi.GPIO` 模块,并设置 GPIO 的工作模式(BCM 或 BOARD)来指定针脚编号方式。例如:
```python
import RPi.GPIO as GPIO
# 使用 BCM 编号方式
GPIO.setmode(GPIO.BCM)
# 设置 GPIO14 为输出模式
GPIO.setup(14, GPIO.OUT)
# 输出高电平
GPIO.output(14, GPIO.HIGH)
```
完成操作后,应清理 GPIO 设置以避免后续冲突:
```python
GPIO.cleanup()
```
### ### 使用硬件 PWM 控制设备
树莓派仅有一个硬件 PWM 通道(GPIO1),适合需要稳定脉宽调制的应用,如舵机或电机控制。配置硬件 PWM 的步骤如下:
```python
# 设置 GPIO1 为 PWM 输出
pwm = GPIO.PWM(1, 50) # 频率为 50Hz
# 启动 PWM,占空比为 30%
pwm.start(30)
# 改变占空比
pwm.ChangeDutyCycle(60)
# 停止 PWM
pwm.stop()
```
如果需要更多 PWM 通道,可以通过外接单片机的方式实现,利用串口通信协调树莓派与单片机之间的数据交换。树莓派提供了 `wiringSerial.h` 头文件简化串口通信开发[^3]。
### ### 高级 GPIO 配置
树莓派的 `/boot/config.txt` 文件允许对 GPIO 进行更精细的配置。例如,可以选择特定 GPIO 的复用功能、设置输出状态或更改上拉/下拉电阻。以下是一些常见配置示例:
```txt
# 为 GPIO 引脚 0 到 27 设置 Alt2 功能(适用于 DPI24)
gpio=0-27=a2
# 将 GPIO12 设置为输出并默认为高电平
gpio=12=op,dh
# 为 GPIO18 和 GPIO20 设置上拉电阻
gpio=18,20=pu
# 将 GPIO17 到 21 设置为输入模式
gpio=17-21=ip
```
这些配置可在系统启动时生效,确保 GPIO 按照预期初始化[^4]。
### ### 数字输入与输出应用
GPIO 可用于数字信号的输入和输出控制。例如,控制一个 LED 灯亮灭的代码如下:
```python
# 设置 GPIO14 为输出模式
GPIO.setup(14, GPIO.OUT)
# 循环点亮 LED
for _ in range(5):
GPIO.output(14, GPIO.HIGH) # 输出高电平
time.sleep(1)
GPIO.output(14, GPIO.LOW) # 输出低电平
time.sleep(1)
```
对于输入操作,例如读取按钮状态:
```python
# 设置 GPIO15 为输入模式,并启用内部上拉电阻
GPIO.setup(15, GPIO.IN, pull_up_down=GPIO.PUD_UP)
# 读取输入状态
input_state = GPIO.input(15)
print("Button state:", input_state)
```
需要注意的是,在连接外部设备时应使用限流电阻(如 1kΩ)以保护 GPIO 引脚免受过载损坏[^5]。
---
阅读全文
相关推荐


















