клас Pin – керування виводами введення/виведення¶
Об’єкт Pin представляє один GPIO на STM32. Він надає методи для налаштування режиму виводу (вхід, вихід, альтернативна функція, аналоговий) і підтягуючих резисторів, а також для читання або встановлення цифрового рівня. Для аналогового вимірювання дивіться pyb.ADC; для перелічення альтернативних функцій дивіться PinAF.
Всі виводи роз’єму попередньо визначені як pyb.Pin.board.<name>. Більшість STM32 OpenMV Cams надають виводи роз’єму P0 … P9; OpenMV Cam N6 надає додаткові виводи до P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Базовий порт/вивід STM32 також можна адресувати безпосередньо через pyb.Pin.cpu.<name>, де назва складається з літери порту та номера виводу (наприклад, pyb.Pin.cpu.A0). Відповідність кожного виводу роз’єму OpenMV виводу ЦП фіксована на платі.
Виводи також можна вибирати за рядковою назвою:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Користувацькі назви можна додати за допомогою Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
і отримати назад:
pin = pyb.Pin("LeftMotorDir")
Також можна встановити власну функцію відображення за допомогою Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
тому виклик pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) передає "LeftMotorDir" безпосередньо до функції відображення.
Наступний порядок визначає, як назва відображається на фізичний вивід:
Об’єкт
Pinпередається безпосередньо.Надана користувачем функція відображення повертає вивід.
Надана користувачем словник містить відповідний ключ.
Рядок збігається з назвою виводу роз’єму (
P0,P1, …).Рядок збігається з назвою порту/виводу ЦП (
A0,B7, …).
Викличте pyb.Pin.debug(True), щоб виводити діагностичну інформацію про відображення кожного об’єкта на вивід.
Конструктори¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Створити новий об’єкт Pin, пов’язаний із заданим
id. Якщо вказані додаткові аргументи, вони передаються доPin.init()для налаштування виводу.Методи класу¶
- classmethod debug(state: bool | None = None) bool | None¶
Отримати або встановити стан налагодження (
TrueабоFalseдля увімкнення або вимкнення).
Методи¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Ініціалізувати вивід:
mode може бути одним із:
Pin.IN- налаштувати вивід як вхід;Pin.OUT_PP- налаштувати вивід як вихід із двотактним керуванням;Pin.OUT_OD- налаштувати вивід як вихід із відкритим стоком;Pin.ALT- налаштувати вивід для альтернативної функції, вхід або вихід;Pin.AF_PP- налаштувати вивід для альтернативної функції з двотактним керуванням;Pin.AF_OD- налаштувати вивід для альтернативної функції з відкритим стоком;Pin.ANALOG- налаштувати вивід як аналоговий.
pull може бути одним із:
Pin.PULL_NONE- без підтягуючого або стягуючого резистора;Pin.PULL_UP- увімкнути підтягуючий резистор;Pin.PULL_DOWN- увімкнути стягуючий резистор.
Коли вивід має увімкнений режим
Pin.PULL_UPабоPin.PULL_DOWN, він підтягується до 3.3 В або GND відповідно через внутрішній резистор (зазвичай десятки кОм – дивіться електричні характеристики в документації STM32 для відповідного OpenMV Cam).value якщо не None, встановить значення виходу порту перед увімкненням виводу.
alt можна використовувати, коли mode дорівнює
Pin.ALT,Pin.AF_PPабоPin.AF_OD, щоб задати індекс або назву однієї з альтернативних функцій, пов’язаних із виводом. Цей аргумент раніше називавсяaf, і його також можна використовувати за потреби.
- value(value: Any | None = None) int | None¶
Отримати або встановити цифровий логічний рівень виводу:
Без аргументів повертає 0 або 1 залежно від логічного рівня виводу.
З аргументом
valueвстановлює логічний рівень виводу.valueможе бути будь-яким значенням, що перетворюється на булеве. Якщо воно перетворюється наTrue, вивід встановлюється у високий рівень, інакше – у низький.
- af() int¶
Повертає поточну налаштовану альтернативну функцію виводу. Повернуте ціле число відповідатиме одній із допустимих констант для аргументу af у функції init.
Константи¶