一.libgpiod 介绍
libgpiod
是一个用于与 Linux GPIO(通用输入输出)子系统交互的用户空间库。它提供了一组简单且高效的 API,允许开发者通过用户空间程序控制 GPIO 引脚,而无需编写内核模块或直接操作 /sys/class/gpio
接口。libgpiod
是 Linux 内核推荐的 GPIO 访问方式,取代了旧的 sysfs
GPIO 接口。
在早期的 Linux 系统中,GPIO 通常通过 /sys/class/gpio
接口进行控制。然而,这种方式存在以下问题:
-
性能差:每次操作都需要文件读写,效率较低。
-
功能有限:不支持复杂的事件检测(如边沿触发)。
-
不推荐使用:从 Linux 4.8 开始,
sysfs
GPIO 接口被标记为过时。
libgpiod
解决了这些问题,提供了以下优势:
-
高性能:直接通过字符设备(