Welcome to Firefly
切换语言
Firefly文档中心
最近更新: 2026-07-09 15:26:39

GPIO 使用

BM1684 芯片包含 3 组 GPIO 控制器,每个控制 32 根 GPIO,与 Linux 的设备节点对应如下:

GPIO控制器Linux设备节点GPIO 物理编号GPIO 逻辑编号
#0/sys/class/gpio/gpiochip4800到31480到511
#1/sys/class/gpio/gpiochip44832到63448到479
#2/sys/class/gpio/gpiochip41664到95416到447

比如要操作 GPIO6,则需要:

  1. 编号转换:物理编号是 6, 对应的逻辑编号是 (480 + (6 - 0)) = 486,这里的 0 代表 GPIO 物理编号的开始
  2. 导出该 GPIO, 以 root 用户运行:
    echo 486 >/sys/class/gpio/export
  3. 操作 GPIO,设定读取输入或输出指定值:
    cd /sys/class/gpio/gpio486
    # 设置输入模式
    echo in >direction
    cat value
    
    # 设置输出模式
    echo out >direction
    # 输出低电平
    echo 0 >value
    # 输出高电平
    echo 1 >value

有以下注意事项:

  • 如果 GPIO 已经被其他驱动申请了的话,是无法导出 (export) 成功的,也就无法进行后续的读写操作。

本页目录