简单记录如何用shell控制一个gpio号

5 篇文章 0 订阅
1 篇文章 0 订阅

一个M.2的接口走的usb通道,GPIO 为高时 USB3.0 切换到 M.2 接口; GPIO 为低时 USB3.0 切换到  USB 接口,

我们可以先通过命令行来控制某一个GPIO(我要控制的GPIO编号是483)验证一下,如果没有问题,我们再将这些命令写到脚本里,再增加一些逻辑判断就可以。

1、首先我们来看看/sys/class/gpio/这个目录下有什么:

nvidia@nvidia:~$ ls /sys/class/gpio/
export  gpiochip224  gpiochip232  gpiochip248  gpiochip288  unexport
/sys/class/gpio/这个目录是控制gpio的,而 /sys/class/gpio/export文件是用于通知系统需要导出控制的GPIO引脚编号,/sys/class/gpio/unexport文件是用于通知系统取消导出控制的GPIO引脚编号

2、既然我们要控制某一个gpio,那么就需要告诉系统需要导出控制的gpio是哪个,并且需要超级用户的权限才可以(经过验证,sudo获取临时的权限并不能执行,需要用su才可以):

nvidia@nvidia:~$ sudo su
root@nvidia:/home/nvidia# echo 483 > /sys/class/gpio/export
root@nvidia:/home/nvidia# ls /sys/class/gpio/
export  gpio483  gpiochip224  gpiochip232  gpiochip248  gpiochip288  unexport

3、需要设置一下gpio的方向(输入或者输出),因为我要拉低这个引脚的电平所以必须设置为输出:

root@nvidia:/home/nvidia# echo out > /sys/class/gpio/gpio483/direction

4、设置gpio的电平状态,这里设置为高电平:

root@nvidia:/home/nvidia# echo 1 > /sys/class/gpio/gpio483/value

5、执行以上命令后,退出root用户,切换到普通用户:

root@nvidia:/home/nvidia# exit
exit
nvidia@nvidia:~$

经过以上操作后, USB 口与 5G 公用USB会失效,M.2的接口生效。 控制切换的 GPIO 标号为 483。

那么接下来的工作就是写脚本了。脚本GPIO483.sh的内容如下:


#!/bin/bash
 
ls /sys/class/gpio
  
if [ -d /sys/class/gpio/gpio483 ]
then
    echo out > /sys/class/gpio/gpio483/direction
    echo 1 > /sys/class/gpio/gpio483/value
else
    echo 483 > /sys/class/gpio/export
    echo out > /sys/class/gpio/gpio483/direction
    echo 1 > /sys/class/gpio/gpio483/value

ls /sys/class/gpio

fi

在执行这个脚本之前需要给这个脚本执行的权限,这个脚本的名称保存为GPIO483.sh:

sudo chmod 777 GPIO483.sh
./GPIO483.sh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无证驾驶梁嗖嗖

让我们解决Jetson使用问题

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

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

打赏作者

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

抵扣说明:

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

余额充值