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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小飞爱学习1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值