DIY机器人工房头像

简单理解:offset 和 libgpiod

不是同一个东西,完全是两个概念,只是经常一起搭配使用,很容易搞混:

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

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--