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)