Вопрос по GPIO в "Апельсинке"

Подскажите пожалуйста.
Экспортировал нужные пины, выставил mode(direction) и value, полюбовался как всё работает. А как это правильно завершить то, точнее на default сбросить ?
Если я делаю unexport выставленные режимы на пинах сохраняются (хотя папка /sys/class/gpio/gpioXX удаляется). Значит по идее надо “ручками” за собой убирать, но как ? Где-то вычитал что нужно переводить всех в mode IN, так ли это ?
И еще вопросик, если программно реализовывать работу, надо ли после
export -> set direction -> set value делать -> unexport сразу ?
Спасибо и извините если вопросы глупые. 🙂

Каким образом выполняли export? Используете WiringOP?

покурив маны всякие, я нашел 3 способа управлять GPIO.

  1. через wiringOP, имхо, самый кривой способ, т.к. это порт либы под “малину” отсюда не все работает.
  2. через модуль gpio-sunxi
  3. просто напрямик, через sysfs.
    3й способ - показался самым простым\надежным, через него и делал.
    пример (баш скрипта):
    echo 6 > /sys/class/gpio/export
    создается каталог в /sys/class/gpio/gpio6/… где уже и управляю OUT\IN и прочие настройки.
    просто в мануале была такая строчка
    \When you are done unexport the pin
    вот и решил уточнить. мало ли.
    Спасибо.

вообщем покурив еще маны\форумы\здравый смысл, сам ответил на свои вопросы 😃 возможно кому пригодится.

  1. unexport делать не надо сразу, т.к. не получится interrupts-ы отлавливать 😄
  2. дефолтное состояние пинов - input pull-down
    Отсюда вывод - экспортировали, делаем что хотели (считываем значения, выставляем, мучаем датчики и прочая) и только когда решаем завершить работу - выставляем все использованые пины в input(pull-down) и unexport.

Есть вот такой проект - может поможет https://github.com/bitbank2/ArmbianIO

Еще от сюда можно что то взять(полезное) - https://www.instructables.com/id/Orange-Pi-One-Python-GPIO-basic/

Log in to reply