GPIO
Этот модуль содержит функции для доступа к PIO (Programmable Input Output) пинам ЦПУ. Доступ может осуществляться как на уровне порта (все пины ввода-вывода порта одновременно), так и на уровне отдельного пина (только один пин ввода-вывода порта). Доступ к порту осуществляется с использованием функций pio.port, а доступ к отдельному пину - с использованием функций pio.pin.
I/O порты кодируются в байт и зависят от платформы. По этой причине модуль PIO определяет числовую константу для каждого доступного I/O порта. Например, на платформе ESP32 пин GPIO15 определен константой pio.GPIO15. Пожалуйста, обратитесь к документации вашей платформы или платы, чтобы узнать, какие I/O пины доступны. Если вы обращаетесь к несуществующему I/O, возвращается значение nil.
Учитывайте, что I/O пин может перекрываться с другими функциями (такими как ADC, SPI, UART и т. д.).
pio.pin.setdir(direction, pin1 [, pin2, …, pinn])
Установить направление (вход/выход) для пинов.
После перезапуска whitecat не следует делать предположений о направлении пина. Прежде чем использовать пин, вы должны установить его направление с помощью этой функции.
Аргументы:
- direction (направление): направление пина, может быть либо pio.INPUT (вход), либо pio.OUTPUT (выход).
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: ничего.
pio.pin.setpull(type, pin1 [, pin2, …, pinn])
Включить/выключить подтягивающие/понижающие резисторы на указанных пинах.
Аргументы:
- type (тип): может быть либо pio.PULLUP для включения подтягивающих резисторов, pio.PULLDOWN для включения понижающих резисторов, или pio.NOPULL для отключения обоих подтягивающих и понижающих резисторов.
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: ничего.
pio.pin.sethigh(pin1 [, pin2, …, pinn])
Установить пины в положение 1 (высокий уровень).
Аргументы:
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: ничего.
pio.pin.setlow(pin1 [, pin2, …, pinn])
Установить пины в положение 0 (низкий уровень).
Аргументы:
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: ничего.
pio.pin.inv(pin1 [, pin2, …, pinn])
Инвертировать значения пинов с 0 на 1 и с 1 на 0.
Аргументы:
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: ничего.
pio.pin.setval(value, pin1 [, pin2, …, pinn])
Установить пины в положение value.
Аргументы:
- value: 0 или 1
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: ничего.
val1, val2, …, valn = pio.pin.getval( pin1, pin2, …, pinn )
Получить значения пинов (0 или 1 по каждому).
Аргументы:
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает:
- val1: значение pin1 (0 или 1)
- val2: значение pin2 (0 или 1)
- ….
pio.pin.num(pin1 [, pin2, …, pinn])
Возвращает номер пина процессора.
Аргументы:
- pin1: первый пин.
- pin2: второй пин (необязательно).
- ….
Возвращает: номер пина процессора.
pio.port.setdir(direction, port1 [, port2, …, portn])
Установить направление (вход/выход) для порта.
Аргументы:
- direction: направление, может быть pio.INPUT или pio.OUTPUT
- pin1: первый порт.
- pin2: второй порт (необязательно).
- ….
Возвращает: ничего.
pio.port.setpull(type, port1 [, port2, …, portn])
Включить/выключить подтягивающие/понижающие резисторы на указанных портах.
Аргументы:
- type (тип): может быть либо pio.PULLUP для включения подтягивающих резисторов, pio.PULLDOWN для включения понижающих резисторов, или pio.NOPULL для отключения обоих подтягивающих и понижающих резисторов.
- pin1: первый порт.
- pin2: второй опрт (необязательно).
- ….
Возвращает: ничего.
val1, val2, …, valn = pio.port.getval(port1 [, port2, …, portn])
Получить значения с портов.
Аргументы:
- pin1: первый порт.
- pin2: второй порт (необязательно).
- ….
Возвращает:
- val1: значение первого порта
- val2: значение второго порта
- ….
pio.port.sethigh(port1 [, port2, …, portn])
Установить пины порта в положение 1 (высокий уровень).
Аргументы:
- pin1: первый порт.
- pin2: второй порт (необязательно).
- ….
Возвращает: ничего.
pio.port.setlow(port1 [, port2, …, portn])
Установить пины порта в положение 0 (низкий уровень).
Аргументы:
- pin1: первый порт.
- pin2: второй порт (необязательно).
- ….
Возвращает: ничего.
Пример
led_pin = pio.GPIO4
pio.pin.setdir(pio.OUTPUT, led_pin)
pio.pin.sethigh(led_pin)