树莓派——libgpiod

一、libgpiod – C library

(1)libgpiod

  用于与 linux GPIO 字符设备交互的 C 库和工具
  字符设备(gpiod 代表 GPIO 设备)

从 linux 4.8 开始,不推荐使用 GPIO sysfs 接口。用户空间应该使用
字符设备。这个库封装了 ioctl 调用和简单的 API 背后的数据结构。
其实还有另一个库Raspberry Pi,但是现在已经停止维护了,所以我们不再继续使用。

(2)安装编译

  1. 下载地址:https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/

  2. 下载解压之后,我们首先确保安装依赖:

 autoconf    --version
  1. 配置编译安装
./autogen.sh
./configure
make
sudo make install

(3)命令行使用

目前有六个命令行工具可用

  • gpiodetect - 列出系统上存在的所有 gpiochips,它们的名称,标和 GPIO 线数

  • gpioinfo - 列出指定 gpiochips 的所有行、它们的名称、消费者、方向、活动状态和附加标志

  • gpioget - 读取指定 GPIO 线的值

  • gpioset - 设置指定 GPIO 线的值,可能保留这些线导出并等待超时、用户输入或信号

  • gpiofind - 找到 gpiochip 名称和给定行名称的行偏移

  • gpiomon - 等待 GPIO 线上的事件,指定要观看的事件,退出前要处理多少事件或事件应该报告给控制台

例子

# 获取帮助信息      
$ gpio -h

# 获取BCM编号 
$ gpio readall

# 读取单个 GPIO 线的值。
$ gpioget gpiochip1 23
0

# 同时读取两个值。设置线的活动状态
# 低。
$ gpioget --active-low gpiochip1 23 24
1 1

# 设置两行的值,然后守护进程并等待信号(SIGINT 或
# SIGTERM) 在释放它们之前。
$ gpioset --mode=signal --background gpiochip1 23=1 24=0

# 设置单行的值,然后立即退出。这很有用
# 用于浮动引脚。
$ gpioset gpiochip1 23=1

# 按名称查找 GPIO 行。
$ gpiofind "USR-LED-2"
GPIO芯片1 23

# 按名称切换 GPIO,然后等待用户按 ENTER。
$ gpioset --mode=wait `gpiofind "USR-LED-2"`=1

# 等待单个 GPIO 线上的三个上升沿事件,然后退出。
$ gpiomon --num-e
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值