Перейти к содержанию

Навигация

Работа с GPIO: различия между версиями

Нет описания правки
Строка 164: Строка 164:
echo 0 > /sys/class/gpio/gpio32/value
echo 0 > /sys/class/gpio/gpio32/value
</syntaxhighlight>
</syntaxhighlight>
====Номера GPIO====
Наиболее унивверсальный способ получить номер GPIO для устаревшего интерфейса sysfs - получить его по метке GPIO.
Для этого нужно найти номер gpiochip, смещение внутри gpiochip и базовый адрес gpiochip.
Пример:
<syntaxhighlight lang="bash">
~# gpiofind "A1 OUT"
gpiochip0 109
~# cat /sys/class/gpio/gpiochip0/base
0
</syntaxhighlight>
Т.е. для A1 OUT будет старый номер 0 (base) + 109 (offset) = 109.
Номера по метке можно получить также через отладочный интерфейс ядра. Это не требует использования утилит gpiod, но формат вывода может быть изменён в новых версиях ядра. "Старый" (глобальный) номер указан в первом столбце:
<syntaxhighlight lang="bash">
~# cat /sys/kernel/debug/gpio  | grep "A1 OUT"
gpio-109 (A1 OUT              |wb-mqtt-gpio        ) out lo
</syntaxhighlight>
GPIO для дискретных входов и выходов модулей расширения и модулей ввода-вывода доступны таким же образом. Не забудьте выбрать модуль в интерфейсе Hardware Modules Configuration.


====Работа с прерываниями====
====Работа с прерываниями====