Linux下的GPIO基本概念指南

一、什么是GPIO

        在Linux中,GPIO(General Purpose Input/Output,通用输入输出)是一种用于控制外部设备和传感器的通用接口。它允许你通过软件控制数字信号,从而实现各种硬件设备的交互,如LED、按钮、传感器、马达等。

        每个GPIO引脚都可以被配置为输入或者输出,使其适用于不同的应用场景。例如:你可以将GPIO配置为输出来控制LED灯的亮灭,或者将其配置为输入来读取按钮按下的状态。
        Linux内核为GPIO提供了统一的管理和控制接口,以及在"/sys/class/gpio/"路径下的文件系统接口。通过这些接口,用户空间的程序可以与GPIO进行交互,包括导出(export)、配置方向、读取和写入GPIO值等操作。
        使用GPIO接口需要注意权限问题,通常需要以root或者具有适当权限的用户来执行相关操作。不同的开发板和硬件平台可能会有不同的GPIO引脚分配和编号方式,因此在实际操作中需要查阅相关的文档或者示例代码。 

二、文件结构 

        在Linux中,"/sys/class/gpio/"路径下的文件和文件夹是用来控制和管理GPIO(通用输入输出)的接口。以下是这些文件和文件夹的作用。

1、export(文件)

        用于导出一个GPIO引脚,使其能够在用户空间中被使用。写入一个引脚号到这个文件可以导出对应的GPIO

2、unexport(文件)

        用于取消导出一个GPIO引脚,从而停止其在用户空间中的使用。写入一个引脚号到这个文件可以取消导出对应的GPIO

3、gpioX(目录)

        X为引脚号,导出后的GPIO引脚会在这个文件夹中生成一个以引脚号命名的文件夹,其中包含了与该引脚相关的文件:

3.1、active_low

用于设置GPIO的极性。
设置为        1        GPIO的高电平状态对应的是逻辑上的低电平
设置为        0        GPIO的高电平状态对应的是逻辑上的高电平

3.2、direction

用于设置GPIO的方向,可以是
in        输入
out        输出

3.3、edge

用于适GPIO的中断触发方式。可以设置为:
none        无中断触发
rising        上升沿触发
falling        下降沿触发
both        上升沿和下降沿都触发

 3.4、subsystem

表示这个GPIO所属的子系统

 3.5、uevent

这个文件用来发送内核事件信息给用户空间,当GPIO状态发生改变时,会触发一个uevevt,通知用户空间

 3.6、value

对于输出GPIO,用于写入"0"或"1",控制引脚的电平。
对于输出GPIO,用于读取当前引脚的电平。

3.7、gpiochipX 

表示 GPIO 控制器的内核设备。在 Linux 内核中,GPIO 控制器被抽象为 gpiochip 设备,每个 gpiochip 设备代表一个物理的 GPIO 控制器或者一个虚拟的 GPIO 控制器。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玖尾猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值