Linux通过shell命令操作GPIO

Linux通过shell命令操作GPIO

开发板:zlg M3354

目录:cd /sys/class/gpio/

一、各个目录和文件功能

1、gpio_operation 通过/sys/文件接口操作IO端口 GPIO到文件系统的映射,
2、控制GPIO的目录位于/sys/class/gpio
3、/sys/class/gpio/export文件用于通知系统需要导出控制的GPIO引脚编号
4、/sys/class/gpio/unexport 用于通知系统取消导出
5、/sys/class/gpio/gpiochipX目录保存系统中GPIO寄存器的信息,包括每个寄存器控制引脚的起始 编号base,寄存器名称,引脚总数 导出一个引脚的操作步骤
6、首先计算此引脚编号,引脚编号 = 控制引脚的寄存器基数 + 控制引脚寄存器位数
例如:GPIO 1_13=1*32+13,则引脚编号则为GPIO45
7、向/sys/class/gpio/export写入此编号,比如12号引脚,echo 12 > /sys/class/gpio/export,命令成功后生成/sys/class/gpio/gpio12目录,如果没有出现相应的目录,说明此引脚不可导出:
8、direction文件,定义输入输入方向,可以通过下面命令定义为输出,direction接受的参数:in, out, high, low。high/low同时设置方向为输出
9、value文件是端口的数值,为1或0.

二、操作顺序

1. 导出

/sys/class/gpio# echo 44 > export

2. 设置方向

/sys/class/gpio/gpio44# echo out > direction

3. 查看方向

/sys/class/gpio/gpio44# cat direction

4. 设置输出

/sys/class/gpio/gpio44# echo 1 > value

5. 查看输出值

/sys/class/gpio/gpio44# cat value

6. 取消导出

/sys/class/gpio# echo 44 > unexport

实际操作过程,如果需要测试多个GPIO,可以写个shell脚本去完成

// gpioOut.sh
#!/bin/bash
echo out >  /sys/class/gpio/gpio$1/direction
cat  /sys/class/gpio/gpio$1/direction
for a in {1..10}
do
 echo $2 > /sys/class/gpio/gpio$1/value
 cat  /sys/class/gpio/gpio$1/value
 sleep 1
done

// gpioIn.sh
#!/bin/bash
echo in >  /sys/class/gpio/gpio$1/direction
cat  /sys/class/gpio/gpio$1/direction
for a in {1..8}
do
 cat /sys/class/gpio/gpio$1/value
   sleep 1
   done

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在嵌入式Linux中,可以通过GPIO(通用输入输出)进行按键监听。GPIO是一种硬件接口,用于与外部设备进行通信,包括按键。 在Linux系统中,GPIO以文件的形式存在于/sys/class/gpio目录下,可以通过操作这些文件来实现对GPIO的控制和使用。 要监听按键,首先需要配置GPIO引脚的输入模式。这可以通过在/sys/class/gpio目录下创建相应的GPIO目录来实现。例如,要监听GPIO1引脚,可以执行以下命令: echo 1 > /sys/class/gpio/export echo in > /sys/class/gpio/gpio1/direction 然后,可以使用文件读取的方式来获取按键状态。例如,可以通过读取/sys/class/gpio/gpio1/value文件来获取按键的状态。该文件的内容为0或1,分别表示按键按下和松开的状态。 为了实现按键的持续监听,可以使用循环来不断读取按键状态。可以使用脚本编程语言如Shell或Python,或者C/C++等编程语言来实现这个循环。 在读取按键状态时,可以结合使用轮询、中断或多线程等方法来实现。轮询是最简单的方法,即在循环中不断地读取按键状态。中断则是通过在按键按下或松开时触发中断来实现监听。多线程可以将按键监听的逻辑与其他程序逻辑分开处理,提高系统的响应能力。 总之,要在嵌入式Linux中实现GPIO按键监听,首先需要配置GPIO引脚的输入模式,然后通过读取GPIO文件来获取按键状态,并结合适当的方法来实现按键的持续监听。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小飞爱学习1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值