libgpiod 是 Linux 推荐的 GPIO 控制库,提供命令行工具(gpiodetectgpioinfogpioset 等)和 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
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐