嵌入式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的控制方法,实现各种硬件设备的控制和管理。

  • 21
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值