嵌入式Linux中GPIO设置的一些基本指令和步骤

一、GPIO的介绍

  嵌入式Linux中的GPIO(General Purpose Input/Output,通用输入/输出)是一种常用的接口,允许开发者直接控制硬件设备的某些引脚,进行诸如LED控制、传感器读取、设备状态监测等任务。

二、设置步骤和示例

  在嵌入式Linux系统中,GPIO的设置和管理通常涉及以下几个方面:

  • GPIO的导出和配置:首先,需要将GPIO引脚导出到用户空间,以便用户空间的程序可以访问和控制它。这通常通过 /sys/class/gpio接口完成。例如,要将GPIO引脚79导出,可以使用以下命令:
echo 79> /sys/class/gpio/export

导出后,可以使用以下命令查看已导出的GPIO列表:

ls /sys/class/gpio
  • 设置GPIO的方向:GPIO引脚可以配置为输入或输出模式。对于输出引脚,可以设置其电平(高电平或低电平)。对于输入引脚,可以读取其电平状态。使用以下命令可以设置GPIO79为输出模式:
echo out > /sys/class/gpio/gpio79/direction
  • 设置和读取GPIO的电平:
    对于输出引脚,可以使用以下命令设置其电平:
echo 1 > /sys/class/gpio/gpio79/value  # 设置GPIO79为高电平  
echo 0 > /sys/class/gpio/gpio79/value  # 设置GPIO79为低电平

对于输入引脚,可以使用以下命令读取其电平:

cat /sys/class/gpio/gpio79/value  # 读取GPIO79的电平

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

#导出GPIO到用户空间
echo 8 > /sys/class/gpio/export
#查看目录的变化,增加了gpio8目录
ls /sys/class/gpio/
#把gpio8从用户空间中取消导出
echo 8 > /sys/class/gpio/unexport
#查看目录变化,gpio8目录消失了
ls /sys/class/gpio/

export文件:导出GPIO,该文件只能写不能读,用户向该文件写 入GPIO的编号N可以向内核申请将该编号的GPIO导出到用户空间,若内核本 身没有把该GPIO用于其它功能,那么在/sys/class/gpio目录下会新增一 个对应编号的gpioN目录,如导出了gpio8。

unexport文件:export的相反操作,取消导出GPIO,该文件同样只能写不能读。如往unexport写入8后,gpio8目录消失了。
在这里插入图片描述
查看GPIO8文件下的内容

ls -lH /sys/class/gpio/gpio8
或者
cd /sys/class/gpio/gpio8
ls 

在这里插入图片描述
在这里插入图片描述

常用的属性文件介绍如下:

  1. direction文件:表示GPIO引脚的方向,它的可取值如下:

    • in:引脚为输入模式。
    • out:引脚为输出模式,且默认输出电平为低。
    • low:引脚为输出模式,且默认输出电平为低。
    • high:引脚为输出模式,且默认输出电平为高。
  2. value文件:GPIO的电平,1表示高电平,0表示低电平。当GPIO被配置为输出模式, 那么修改该文件的内容可以改变引脚的电平。也可配置为输入模式,检测电平的高低。

  3. edge文件:用于配置GPIO的中断触发方式,当GPIO被配置为中断时,可以通过系统 的poll函数监听。edge文件可取如下的属性值:

    • none:没有使用中断模式。
    • rising:表示引脚为中断输入模式,上升沿触发。
    • falling:表示引脚为中断输入模式,下降沿触发。
    • both:表示引脚为中断输入模式,边沿触发。

三、其它

引脚值计算公式:

index = GPIOn_IOx = (n-1)*32 + x

A为1,B为2,C为3…
比如 :
PB15的引脚值为
index=(2-1)32+15=47
PE12的引脚值为
index=32
(5-1)+12 =140

  编写GPIO驱动程序:对于更复杂的GPIO控制需求,可能需要编写GPIO驱动程序。驱动程序通常包括GPIO的初始化、配置、读取和设置等操作。 驱动程序编写完成后,需要将其编译为内核模块,并使用insmod命令加载到内核中。
  请注意,具体的GPIO编号和操作方法可能因不同的硬件平台和Linux版本而有所差异。因此,在实际操作中,请参考相关硬件和Linux版本的文档和参考资料。
  以上是关于嵌入式Linux中GPIO设置的一些基本指令和步骤。通过学习和实践这些指令和步骤,开发者可以更好地掌握GPIO的控制方法,实现各种硬件设备的控制和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/424181.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

雷电将军部分技能AOE范围测试

简单说一下,以往的AOE范围数据大部分来自Dim提供的拆包文件或泄露的GM端控制台显示的距离数据,如《AOE范围学》中的数据,然而米哈游自1.6版本及以后未再公开泄露过GM端,因为一些原因Dim也没再更新拆包文件中角色技能参数相关的部分…

C2_W2_Assignment_吴恩达_中英_Pytorch

Neural Networks for Handwritten Digit Recognition, Multiclass In this exercise, you will use a neural network to recognize the hand-written digits 0-9. 在本次练习中,您将使用神经网络来识别0-9的手写数字。 Outline 1 - Packages 2 - ReLU Activatio…

服务器有几种http强制跳转https设置方法

目前为站点安装SSL证书开启https加密访问已经是件很简单的事了,主要是免费SSL证书的普及,为大家提供了很好的基础。 Apache环境下如何http强制跳转https访问。Nginx环境下一般是通过修改“你的域名.conf”文件来实现的。 而Apache环境下通过修改.htacces…

类与对象(一)

目录 1 什么是面向过程和面向对象 1.1举例 2类的引入 3类的定义 3.1类的两种定义方式: 4.类的访问限定符及封装 4.1访问限定符 4.1.1为什么要有访问限定符 4.1.2有哪些访问限定符呢? 4.1.3简单举例理解 4.1.4C中的class与struct的区别(面试问题…

Tomcat基础及与Nginx实现动静分离,搭建高效稳定的个人博客系统

目录 引言 一、TOMCAT基础功能 (一)自动解压war包 (二)状态页 1.登录状态页 2.远程登录 (三)服务管理界面 (四)Host虚拟主机 1.设置虚拟主机 2.建立站点目录与文件 二、实…

python 使用curl_cffi 绕过jax3指纹-Cloudflare 5s盾

现在越来越多的网站已经能够通过JA3或者其他指纹信息,来识别你是不是爬虫了。传统的方式比如换UA,加代理是没有任何意义了,所以这个时候我们就需要使用到curl_cffi 了。 1.TLS 指纹是啥? 在绝大多数的网站都已经使用了 HTTPS&am…

Java项目:32 基于springboot的课程作业管理系统(含源码数据库+文档免费送)

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 管理员:首页、个人中心、公告信息管理、班级管理、学生管理、教师管理、课程类型管理、课程信息管理、学生选课管理、作业布置管理、作业提…

sprintboot集成flink快速入门demo

一、flink介绍 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。Flink最适合的应用场景是低时延的数据处理(Data Processing&…

⭐每天一道leetcode:13.罗马数字转整数(简单)

⭐今日份题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 100…

MATLAB知识点:条件判断switch-case-otherwise-end语句

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自​第4章:MATLAB程序流程控制 switch翻译成…

使用C语言 打印出所有的水仙花数

水仙花数 一.什么是水仙花数二.如何获取一个数的每一位数三.如何计算一个数有几位数四.计算出所有的水仙花数 一.什么是水仙花数 水仙花数的定义:“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^ 3&a…

寻找峰值[中等]

优质博文IT-BLOG-CN 一、题目 峰值元素是指其值严格大于左右相邻值的元素。给你一个整数数组nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设nums[-1] nums[n] -∞。 你…

【Python】批量读取文件夹中的excel文件

示例展示 代码 import os import pandas as pd folder_path r"C:\Users\admin\Desktop\excelfile" extension"xlsx" files [file for file in os.listdir(folder_path) if file.endswith(. extension)] for file in files:filepath os.path.join(folde…

ChatGPT支持下的PyTorch机器学习与深度学习技术应用

近年来,随着AlphaGo、无人驾驶汽车、医学影像智慧辅助诊疗、ImageNet竞赛等热点事件的发生,人工智能迎来了新一轮的发展浪潮。尤其是深度学习技术,在许多行业都取得了颠覆性的成果。另外,近年来,Pytorch深度学习框架受…

运用qsort函数进行快排并使用C语言模拟qsort

qsort 函数的使用 首先qsort函数是使用快速排序算法来进行排序的,下面我们打开官网来查看qsort是如何使用的。 这里有四个参数,首先base 是至待排序的数组的首元素的地址,num 是值这个数组的元素个数,size 是指每个元素的大小&am…

数字化转型导师坚鹏:证券公司数字化转型战略、方法与案例

证券公司数字化转型战略、方法与案例 课程背景: 数字化转型背景下,很多机构存在以下问题: 不清楚证券公司数字化转型的发展战略? 不知道证券公司数字化转型的核心方法? 不知道证券公司数字化转型的成功案例&am…

第四十八回 解珍解宝双越狱 孙立孙新大劫牢-Python模块和包概念与使用

吴用对宋江说,有个人,他是石勇的关系,与祝家庄的峦廷玉关系好,还是杨林、邓飞的老相识,他有一计.... 原来在宋江攻打祝家庄的时间段,山东海边登州也发生了一件事。登州山下有一家猎户,弟兄两个…

Linux下进程相关概念详解

目录 一、操作系统 概念 设计操作系统的目的 定位 如何理解“管理” 系统调用和库函数概念 二、进程 概念 描述进程—PCB(process control block) 查看进程 进程状态 进程优先级 三、其它的进程概念 一、操作系统 概念 任何计算机系统都包…

HPE ProLiant MicroServer Gen8更换坏硬盘(RAID 1+0)

HPE ProLiant MicroServer Gen8今天硬盘告警,坏了一块硬盘(估计还是由于上次突然断电导致的),关机,拆下坏硬盘,更换新硬盘,开机后按了一次F1键,系统继续启动并正常使用,同…

VueCli的安装与卸载

文章目录 一.Node安装包的报读网盘提取码二、Vue脚手架Cli三、Vue-CLI使用步骤(自定义安装)1.转换路径并创建项目2.创建步骤的解释(保姆级)3.等待vue项目自己创建好(保姆级) 四、通过npm对vue的安装与卸载 一.Node安装包的报读网盘提取码 下面的链接为地址: Node的百度网盘提取…