不是同一个东西,完全是两个概念,只是经常一起搭配使用,很容易搞混:
libgpiod
它是一套软件库 / 工具集,是用来在 Linux 下操作 GPIO 的驱动接口,替代老旧的 wiringPi、sysfs GPIO。
- 包含 Python 绑定、命令行工具:
gpioinfo/gpioset/gpioget - 作用:向内核下发指令,控制引脚高低电平、监听引脚中断
- 类比:相当于一个 GPIO 的操作工具箱
offset
它是GPIO 引脚的编号(线号,line offset),是一个数字,属于引脚的地址。
- 每个 gpiochip 下面的引脚从 0 开始顺序编号,这个编号就是 offset
- 例如 PE0 = offset 128、PE8 = offset 136
- 类比:相当于工具箱里每个零件的编号
一句话关系
libgpiod 是工具,offset 是你告诉这个工具要操作哪一根引脚的地址。
举个例子:
# libgpiod的工具 gpioset,操作 /dev/gpiochip0 上 offset=128 的引脚,输出高电平
gpioset /dev/gpiochip0 128=1
gpioset:libgpiod 提供的工具128:offset(目标引脚编号)
放到你之前的 Python 代码里也是同理:
# 告诉libgpiod,我要拿offset=128这根线
line = chip.get_line(128)
补充对比:
- wiringOP:工具,用自己私有的 wpi 编号
- libgpiod:工具,强制要求使用内核标准 offset
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2401_82762455/article/details/168752407



