Python GPIO开发

Copyright © Quectel Wireless Solutions Co., Ltd. 2026. All rights reserved.


本文档说明 Quectel Pi M1/L1 上使用 Python 访问 GPIO 的基本流程。

环境确认

gpiodetect
ls -l /dev/gpiochip*
gpioinfo
python3 --version

设备节点

说明

/dev/gpiochip0

当前验证为主 GPIO 控制器,标签 400000.pinctrl

/dev/gpiochip1

当前验证为 PMIC 相关 GPIO 控制器

/dev/gpiochip2

当前验证为 LPI 相关 GPIO 控制器

安装依赖

建议先使用虚拟环境,再安装 Python GPIO 库。

sudo apt update
sudo apt install -y gpiod python3-venv python3-pip
python3 -m venv .venv
source .venv/bin/activate
pip install python-periphery

读取示例

示例使用 /dev/gpiochip0 的 line 36。实际开发前应根据 M1 引脚定义确认物理引脚与 line offset 的对应关系。

from periphery import GPIO

chip = "/dev/gpiochip0"
line = 36

gpio = GPIO(chip, line, "in")
try:
    print(gpio.read())
finally:
    gpio.close()

输出示例

from periphery import GPIO
import time

chip = "/dev/gpiochip0"
line = 36

gpio = GPIO(chip, line, "out")
try:
    gpio.write(True)
    time.sleep(1)
    gpio.write(False)
finally:
    gpio.close()

注意事项

  • GPIO line offset 不等于物理排针编号,接线前必须确认 M1 引脚定义。

  • 使用 gpioinfo 查看线路是否已被系统占用,带 [used] 的线路不建议直接抢占。

  • 当前板端 gpiod 工具为 libgpiod v1.6.3,命令行验证请参考 GPIOD 使用说明。