基础版
复用了gpio26~gpio37、gpio52,进行测试输出高低电平,
gpio_led.sh:用于点亮led灯
#!/bin/bash
# 设置GPIO Pin编号
PINS=(26 27 28 29 30 31 32 33 34 35 36 37 52)
# 设置GPIO Pin为输出模式
for PIN in ${PINS[@]}
do
echo $PIN > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$PIN/direction
done
# 循环控制LED灯闪烁
while true
do
for PIN in ${PINS[@]}
do
echo "1" > /sys/class/gpio/gpio$PIN/value # 设置高电平
done
sleep 1 # 延时1秒
for PIN in ${PINS[@]}
do
echo "0" > /sys/class/gpio/gpio$PIN/value # 设置低电平
done
sleep 1 # 延时1秒
done
gpio_unexport.sh:用于将gpio取消export
#!/bin/bash
# 设置GPIO Pin编号
PINS=(26 27 28 29 30 31 32 33 34 35 36 37 52)
for PIN in ${PINS[@]}
do
echo $PIN > /sys/class/gpio/unexport
done
升级版
gpio_test.sh
使用方法:./gpio_test.sh d c
其中 d代表每次亮点/熄灭的时长,单位为s,默认0.3s
c为循环测试次数,默认为1W次,比如
./gpio_test.sh 1 100 意思是每次亮点/熄灭时长为1秒,循环测试100次
#!/bin/bash
function clear()
{
# 设置GPIO Pin编号
PINS=(26 27 28 29 30 31 32 33 34 35 36 37 52)
for PIN in ${PINS[@]}
do
[ -d /sys/class/gpio/gpio$PIN ] && echo $PIN > /sys/class/gpio/unexport
done
}
function light()
{
clear
# 设置GPIO Pin编号
PINS=(26 27 28 29 30 31 32 33 34 35 36 37 52)
# 设置GPIO Pin为输出模式
for PIN in ${PINS[@]}
do
[ ! -d /sys/class/gpio/gpio$PIN ] && echo $PIN > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio$PIN/direction
done
# 循环控制LED灯闪烁
#while true
for _i in $(seq 1 $2)
do
for PIN in ${PINS[@]}
do
echo "1" > /sys/class/gpio/gpio$PIN/value # 设置高电平
done
sleep $1 # 延时1秒
for PIN in ${PINS[@]}
do
echo "0" > /sys/class/gpio/gpio$PIN/value # 设置低电平
done
sleep $1 # 延时1秒
done
}
[ -n "$1" ] && duration=$1 || duration=0.3 # 每次亮灯/熄灯时长(s) 默认0.3秒
[ -n "$2" ] && loop_count=$2 || loop_count=10000 # 循环测试次数,默认(1W次)
light $duration $loop_count