Pi
Перейти к навигации
Перейти к поиску
Содержание
Raspberry Pi ver. 1
Схема расположения GPIO
Занять первый gpio
echo "1" > /sys/class/gpio/export
Управление первым gpio на выход
echo "1" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio1/direction echo "1" > /sys/class/gpio/gpio1/value echo "0" > /sys/class/gpio/gpio1/value
Управление первым gpio на вход
echo "1" > /sys/class/gpio/export echo "in" > /sys/class/gpio/gpio1/direction cat /sys/class/gpio/gpio1/value
Комментарий: читаем катом (или можно watch "cat /sys/class/gpio/gpio1/value") порт, подавая на него 3.3 вольта с нижней левой ноги (замыкая проводом на нужный порт).
При замыкании - в файле /sys/class/gpio/gpio1/value будет единичка, при размыкании — ноль.
Освободить первый gpio
echo "1" > /sys/class/gpio/unexport
Примечание: если gpio не освободить, то его нельзя переключить на противоположный режим и использовать
17 gpio входовыходов!
TP-Link MR-3020 GPIOs
Освободить занятые модулями ядра gpio
Для освобождения gpio контактов, занятых соответствующими модулями ядра, нужно выбросить эти подули из автозагрузки. Я это сделал так:
добавил строчки в файл /etc/rc.local перед строкой exit 0
rmmod leds_gpio rmmod gpio_button_hotplug
Скрипт
root@OpenWrt:~# cat gpio.sh
############
# settings #
############
GPIOS="29 7 0 26"
INOROUT=out
SLEEP=3s
#########################
# blink - test finction #
#########################
blink() {
echo "1" > /sys/class/gpio/gpio$1/value
sleep $SLEEP
echo "0" > /sys/class/gpio/gpio$1/value
sleep $SLEEP
blink $1
}
#################
# stop function #
#################
stop() {
for GPIO in $(echo $GPIOS)
do
echo "0" > /sys/class/gpio/gpio$GPIO/value
done
for k in $(ps | grep gpio.sh | grep -v grep | awk {'print $1 '})
do
kill $k
done
}
##################
# start finction #
##################
start() {
for GPIO in $(echo $GPIOS)
do
echo $GPIO > /sys/class/gpio/export
echo $INOROUT > /sys/class/gpio/gpio$GPIO/direction
blink $GPIO&
sleep $SLEEP
done
}
##############################
# run function after test $1 #
##############################
[ -z $1 ]||$1

