Перейти к содержанию
Материалы раздела

GPIO

Модуль pio управляет выводами GPIO по отдельности или целыми портами. Для отдельных выводов используются функции pio.pin, для портов — pio.port.

Каждому доступному выводу соответствует константа, например pio.GPIO15. Набор выводов и их назначение зависят от модели устройства. При обращении к недоступному выводу возвращается nil.

Перед выбором GPIO проверьте схему устройства: вывод может использоваться интерфейсом ADC, SPI, UART или другим периферийным блоком.

pio.pin.setdir(direction, pin1 [, pin2, …, pinn])

Установить направление (вход/выход) для пинов.

После перезапуска направление GPIO не гарантируется. Задайте его перед первым использованием вывода.

Аргументы:

  • direction (направление): pio.INPUT (вход) или pio.OUTPUT (выход).
  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.pin.setpull(type, pin1 [, pin2, …, pinn])

Настроить внутренние подтягивающие резисторы на указанных выводах.

Аргументы:

  • type: pio.PULLUP для подтяжки к питанию, pio.PULLDOWN для подтяжки к земле или pio.NOPULL для отключения подтяжки.
  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.pin.sethigh(pin1 [, pin2, …, pinn])

Установить пины в положение 1 (высокий уровень).

Аргументы:

  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.pin.setlow(pin1 [, pin2, …, pinn])

Установить пины в положение 0 (низкий уровень).

Аргументы:

  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.pin.inv(pin1 [, pin2, …, pinn])

Инвертировать значения пинов с 0 на 1 и с 1 на 0.

Аргументы:

  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.pin.setval(value, pin1 [, pin2, …, pinn])

Установить на выводах уровень value.

Аргументы:

  • value: 0 или 1.
  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: ничего.

val1, val2, …, valn = pio.pin.getval( pin1, pin2, …, pinn )

Получить значения пинов (0 или 1 по каждому).

Аргументы:

  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает:

  • val1, …, valn: значения соответствующих выводов (0 или 1).

pio.pin.num(pin1 [, pin2, …, pinn])

Возвращает номера выводов процессора.

Аргументы:

  • pin1, …, pinn: выводы GPIO; pin1 обязателен, остальные необязательны.

Возвращает: номера соответствующих выводов процессора.

pio.port.setdir(direction, port1 [, port2, …, portn])

Установить направление (вход/выход) для портов.

Аргументы:

  • direction: pio.INPUT (вход) или pio.OUTPUT (выход).
  • port1, …, portn: порты; port1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.port.setpull(type, port1 [, port2, …, portn])

Настроить внутренние подтягивающие резисторы на указанных портах.

Аргументы:

  • type: pio.PULLUP для подтяжки к питанию, pio.PULLDOWN для подтяжки к земле или pio.NOPULL для отключения подтяжки.
  • port1, …, portn: порты; port1 обязателен, остальные необязательны.

Возвращает: ничего.

val1, val2, …, valn = pio.port.getval(port1 [, port2, …, portn])

Получить значения с портов.

Аргументы:

  • port1, …, portn: порты; port1 обязателен, остальные необязательны.

Возвращает:

  • val1, …, valn: значения соответствующих портов.

pio.port.sethigh(port1 [, port2, …, portn])

Установить все поддерживающие вывод пины порта в положение 1 (высокий уровень).

Аргументы:

  • port1, …, portn: порты; port1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.port.setlow(port1 [, port2, …, portn])

Установить все поддерживающие вывод пины порта в положение 0 (низкий уровень).

Аргументы:

  • port1, …, portn: порты; port1 обязателен, остальные необязательны.

Возвращает: ничего.

pio.port.setval(value, port1 [, port2, …, portn])

Записать в каждый порт точное битовое значение: единичные биты устанавливаются, нулевые — очищаются. Для встроенного GPIO номер бита соответствует номеру GPIO; биты входных GPIO не допускаются.

Аргументы:

  • value: неотрицательная битовая маска;
  • port1, …, portn: порты; port1 обязателен, остальные необязательны.

Возвращает: ничего или исключение.

Пример

led_pin = pio.GPIO4
pio.pin.setdir(pio.OUTPUT, led_pin)
pio.pin.sethigh(led_pin)