Linux 工具: libgpiod 工具控制 GPIO
libgpiod 是 Linux 标准 GPIO 控制库,提供命令行工具和 C 接口。通过 gpiodetect 识别控制器,gpioinfo 查看引脚状态。使用 gpioset 控制输出电平(如 gpioset gpiochip1 0=1),gpioget 读取输入,gpiomon 实时监测电平变化。需内核启用 CONFIG_GPIO_CDEV 支持中断等高级功能,适用于嵌入式开发和硬件调试。
·
libgpiod 是 Linux 推荐的 GPIO 控制库,提供命令行工具(gpiodetect、gpioinfo、gpioset 等)和 C 接口,支持中断、边沿检测等高级功能(需内核启用 CONFIG_GPIO_CDEV 配置)。
步骤:
安装 libgpiod 工具(根据系统发行版):
# Debian/Ubuntu
sudo apt install gpiod
# 嵌入式系统可能需手动编译,或通过 Yocto 集成
检测 GPIO 控制器(确认 gpio1 对应的 chip 编号):
gpiodetect
# 输出类似:
# gpiochip0 [gpio@47000000] (32 lines)
# gpiochip1 [gpio@47400000] (16 lines) # 对应设备树的 gpio1(基地址 0x47400000)
# ...
假设 gpio1 对应 gpiochip1(16 个引脚,与设备树 16 个引脚一致)。
查看引脚详细信息(确认引脚功能和状态):
gpioinfo gpiochip1
# 输出类似:
# gpiochip1 - 16 lines:
# line 0: unnamed unused input active-high
# line 1: unnamed unused input active-high
# ...(line 0~15 对应本地引脚 0~15)
控制输出引脚(以 gpiochip1 的 line 0 为例):
# 设置 line 0 为输出高电平(-o 表示输出,1 表示高电平)
gpioset gpiochip1 0=1
# 设置 line 0 为输出低电平
gpioset gpiochip1 0=0
# 后台持续控制(按 Ctrl+C 退出)
gpioset -m hold gpiochip1 0=1
读取输入引脚(以 `gpiochip
# 读取一次电平
gpioget gpiochip1 1
# 持续监测(电平变化时输出)
gpiomon gpiochip1 1
更多推荐
所有评论(0)