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.mzph.cn/news/47913.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第3步---MySQL的DDL和DML操作

第3步---MySQL的DDL和DML操作 1.DDL操作 Data Defination Language 数据定义语言。创建数据库和表的不涉及到数据的操作。 1.1DDL基本操作 1.1.1数据库相关操作 ddl:创建数据库,创建和修改表 对数据库常见的操作: 操作数据库 -- 展示数据…

PSP - 基于开源框架 OpenFold Multimer 蛋白质复合物的结构预测与BugFix

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132410296 AlphaFold2-Multimer 是一个基于 AlphaFold2 的神经网络模型,可以预测多链蛋白复合物的结构。该模型在训练和推理时都可以处…

微信小程序卡片横向滚动竖图

滚动并不是使用swiper&#xff0c;该方式使用的是scroll-view实现 Swiper局限性太多了&#xff0c;对竖图并不合适 从左往右滚动图片示例 wxml代码&#xff1a; <view class"img-x" style"margin-top: 10px;"><view style"margin: 20rpx;…

【SpringCloud】Gateway使用

文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1…

Leetcode61 旋转链表

给你一个链表的头节点 head &#xff0c;旋转链表&#xff0c;将链表每个节点向右移动 k 个位置。 示例1&#xff1a; 输入&#xff1a;head [1,2,3,4,5], k 2 输出&#xff1a;[4,5,1,2,3] 示例2&#xff1a; 输入&#xff1a;head [0,1,2], k 4 输出&#xff1a;[2,0,1] …

Windows配置编译ffmpeg +音视频地址

Windows配置MinGW及MinGW-make使用实例 https://blog.csdn.net/Henoiiy/article/details/122550618 ffmpeg安装遇错&#xff1a;nasm/yasm not found or too old. Use --disable-x86asm for a crippled build. https://blog.csdn.net/sayyy/article/details/124337834https://…

软考高级系统架构设计师(一)计算机硬件

【原文链接】软考高级系统架构设计师&#xff08;一&#xff09;计算机硬件 1.1 计算机硬件组成 1.1.1 计算机的基本硬件组成 运算器控制器存储器输入设备输出设备 1.1.2 中央处理单元&#xff08;CPU&#xff09; 中央处理单元&#xff08;CPU&#xff09;的组成 运算器…

7.11 Java方法重写

7.11 Java方法重写 这里首先要确定的是重写跟属性没有关系&#xff0c;重写都是方法的重写&#xff0c;与属性无关 带有关键字Static修饰的方法的重写实例 父类实例 package com.baidu.www.oop.demo05;public class B {public static void test(){System.out.println("这…

实时拍照翻译怎么做?几个步骤轻松翻译

现在&#xff0c;随着人们跨越国界的频率不断增加&#xff0c;语言障碍成为了一个越来越普遍的问题。为了解决这个问题&#xff0c;一些应用程序开始提供实时拍照翻译功能&#xff0c;这种功能可以通过手机摄像头拍摄文本&#xff0c;并将其翻译成用户所需的语言。那么&#xf…

Websocket原理和实践

一、概述 1.websocket是什么&#xff1f; WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单&#xff0c;允许服务端主动向客户端推送数据。在WebSocket API中&#xff0c;浏览器和服务器只需要完成一次握手&…

从一些常见的错误聊聊mysql服务端的关键配置 | 京东云技术团队

背景 每一年都进行大促前压测&#xff0c;每一次都需要再次关注到一些基础资源的使用问题&#xff0c;订单中心这边数据库比较多&#xff0c;最近频繁报数据库异常&#xff0c;所以对数据库一些配置问题也进行了研究&#xff0c;本文给出一些常见的数据库配置&#xff0c;说明…

(二)结构型模式:6、外观模式(Facade Pattern)(C++实例)

目录 1、外观模式&#xff08;Facade Pattern&#xff09;含义 2、外观模式的UML图学习 3、外观模式的应用场景 4、外观模式的优缺点 5、C实现外观模式的简单实例 1、外观模式&#xff08;Facade Pattern&#xff09;含义 外观模式&#xff08;Facade Pattern&#xff09;…

积跬步至千里 || 矩阵可视化

矩阵可视化 矩阵可以很方面地展示事物两两之间的关系&#xff0c;这种关系可以通过矩阵可视化的方式进行简单监控。 定义一个通用类 from matplotlib import pyplot as plt import seaborn as sns import numpy as np import pandas as pdclass matrix_monitor():def __init…

chatGPT-对话柏拉图

引言&#xff1a; 古希腊哲学家柏拉图&#xff0c;在他的众多著作中&#xff0c;尤以《理想国》为人所熟知。在这部杰作中&#xff0c;他勾勒了一个理想的政治制度&#xff0c;提出了各种政体&#xff0c;并阐述了他对于公正、智慧以及政治稳定的哲学观点。然而&#xff0c;其…

司徒理财:8.21黄金空头呈阶梯下移!今日操作策略

黄金走势分析 盘面裸k分析&#xff1a;1小时周期的行情局部于1896附近即下行通道上轨附近录得一系列的K线呈震荡下行并筑圆顶&#xff0c;上轨压制有效&#xff0c;下行通道并未突破&#xff0c;后市建议延续看下行。4小时周期局部录得一系列的纺锤线呈震荡&#xff0c;但行情整…

基于启扬RK3399核心板消防控制图形显示装置的解决方案

在我们日常生活中&#xff0c;火灾的发生是不可避免的风险之一&#xff0c;为了能及时发现火灾&#xff0c;并能够迅速采取措施进行灭火和救援&#xff0c;消防系统起着至关重要的作用。而在消防系统中&#xff0c;消防控制室图形显示装置是其中的重要组成部分之一。 消防控制图…

Mysql的事务

MySQL 事务 事务用于保证数据的一致性&#xff0c;它由一组相关的dml&#xff08;数据操作语言 增删改&#xff09;语句组成 该组的dml语句要么全部成功&#xff0c;要么全部失败。 -- 1. 创建一张测试表 CREATE TABLE t27( id INT,name VARCHAR(32));-- 2. 开始事务 START …

泰宁风景旅游区-泰宁旅游景点大全排名

泰宁旅游必去十大景点 泰宁景区是国家5A级景区&#xff0c;而且作为全国重点文物保护单位&#xff0c;该景区的游玩项目很多&#xff0c;比如说七大景区&#xff0c;当然了&#xff0c;原始生态为主要景观特点&#xff0c;集奇异性、多样性、休闲性、文化性为一身。那么如果到这…

数据结构,二叉树,前中后序遍历

二叉树的种类 最优二叉树 最优二叉树画法 排序取最小两个值和&#xff0c;得到新值加入排序重复1&#xff0c;2 前序、中序和后序遍历是树形数据结构&#xff08;如二叉树&#xff09;中常用的遍历方式&#xff0c;用于按照特定顺序遍历树的节点。这些遍历方式在不同应用中有不…

无涯教程-Perl - wantarray函数

描述 如果当前正在执行的函数的context正在寻找列表值,则此函数返回true。在标量context中返回false。 语法 以下是此函数的简单语法- wantarray返回值 如果没有context,则此函数返回undef&#xff1b;如果lvalue需要标量,则该函数返回0。 例 以下是显示其基本用法的示例…