GPIOD 使用
GPIOD 简介
自 Linux 4.8 起,GPIO sysfs 接口已被弃用。用户空间应改用 libgpiod
来于 GPIO 字符设备进行交互。
主要特点
- 简单易用:
libgpiod
提供了简洁的 API,使得控制和操作 GPIO 设备变得简单易懂。开发者只需了解基本的 GPIO 概念和函数接口即可使用。 - 独立性:
libgpiod
是一个独立的用户空间库,不依赖于任何特定的硬件平台或芯片。它 适用于多种支持 GPIO 控制的嵌入式平台,如 Radxa ROCK 系列、树莓派、BeagleBone 等。 - 支持多种编程语言:
libgpiod
原生支持 C 语言,同时也提供了 Python 绑定(python3-libgpiod
)和其他语言的封装,使得在不同的编程语言下都可以方便地使用。 - 高效的事件监听:
libgpiod
提供了用于异步事件监听的功能,例如等待 GPIO 状态变化等。这使得开发者可以实现高效的事件驱动应用程序。 - GPIO 规格支持:
libgpiod
提供了对不同 GPIO 规格和编号方式的支持,包括基于 GPIO 编号和基于物理引脚编号两种方式。
命令行工具
libgpiod
提供了命令行工具,用于查看和控制 GPIO 设备。
gpioinfo
显示 GPIO 设备信息:
radxa@radxa-zero2:~$ gpioinfo
gpiochip0 - 85 lines:
line 0: "PIN_27" unused input active-high
line 1: "PIN_28" unused input active-high
line 2: "PIN_7" unused input active-high
line 3: "PIN_11" unused input active-high
line 4: "PIN_13" unused input active-high
line 5: "PIN_15" unused input active-high
line 6: "PIN_18" unused input active-high
line 7: "PIN_40" unused input active-high
line 8: unnamed unused input active-high
line 9: unnamed unused input active-high
...