当前位置: 首页 > news >正文

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 控制器。

http://www.lryc.cn/news/134719.html

相关文章:

  • 快速解决Spring Boot跨域困扰:使用CORS实现无缝跨域支持
  • 【【萌新的STM32学习-13之GPIO寄存器的用法】】
  • Android开发基础知识总结(一)初识安卓Android Studio
  • 常见的网络设备有哪些?分别有什么作用?
  • 斗鱼财报盈利的背后:左手艳舞、右手擦边
  • 布隆过滤器
  • element-ui中二次封装一个带select的form组件
  • 07.利用Redis实现点赞排行榜功能
  • 【前端vue升级】vue2+js+elementUI升级为vue3+ts+elementUI plus
  • 多维时序 | MATLAB实现SCNGO-BiLSTM-Attention多变量时间序列预测
  • go-test
  • 假设你新换了电脑,如何不用U盘的情况下实现软件文件转移?
  • 聊聊 Docker
  • 运行软件mfc140u.dll丢失怎么办?mfc140u.dll的三个修复方法
  • 神经网络基础-神经网络补充概念-54-softmax回归
  • 米尔瑞萨RZ/G2L开发板-02 ffmpeg的使用和RTMP直播
  • 基于swing的在线考试系统java jsp线上试卷问答mysql源代码
  • C# 读取pcd点云文件数据
  • .NET CORE Api 上传excel解析并生成错误excel下载
  • 数据结构,二叉树,前中后序遍历
  • 项目实战笔记2:硬技能(上)
  • 神经网络基础-神经网络补充概念-59-padding
  • 【开源免费】ChatGPT-Java版SDK重磅更新收获2.3k,支持插件模式、实现ChatGpt联网操作。
  • 情报与GPT技术大幅降低鱼叉攻击成本
  • Swift 周报 第三十五期
  • uni-app + SpringBoot +stomp 支持websocket 打包app
  • LeetCode--HOT100题(35)
  • idea插件grep console最佳实践
  • Android 12 源码分析 —— 应用层 二(SystemUI大体组织和启动过程)
  • 【C#】通用类型转换