класс PinAF – альтернативные функции выводов#

Каждый вывод STM32 может работать как обычный GPIO или как одна из нескольких альтернативных функций периферийных устройств (UART4_TX, I2C2_SCL, TIM2_CH3 и т. д.). Объект PinAF описывает одну альтернативную функцию, подключённую к конкретному выводу, и именно его возвращает Pin.af_list().

Модель использования:

p4 = pyb.Pin.board.P4
p4_af = p4.af_list()

p4_af теперь содержит список объектов PinAF, доступных на P4. Точный список зависит от микроконтроллера STM32 на используемой OpenMV Cam.

Обычно каждый драйвер периферийного устройства настраивает нужную ему альтернативную функцию автоматически. Когда одна и та же функция периферийного устройства подключена к нескольким выводам или несколько функций совместно используют один вывод, можно выбрать одну из них явно через Pin.ALT либо по имени:

pin = pyb.Pin(pyb.Pin.board.P4, mode=pyb.Pin.ALT, alt=pyb.Pin.AF1_TIM2)

либо по сырому индексу:

pin = pyb.Pin(pyb.Pin.board.P4, mode=pyb.Pin.ALT, alt=1)

Конструкторы#

class pyb.PinAF#

Объекты PinAF не создаются напрямую. Используйте Pin.af_list() для перечисления альтернативных функций, доступных на заданном выводе.

Методы#

__str__() str#

Возвращает строку, описывающую альтернативную функцию (её имя и индекс).

index() int#

Возвращает индекс альтернативной функции. То же целое число принимается аргументом alt метода Pin.init().

name() str#

Возвращает имя альтернативной функции, например "TIM2_CH3".

reg() int#

Возвращает базовый адрес регистра периферийного устройства, назначенного этой альтернативной функции. Например, если альтернативной функцией является TIM2_CH3, это вернёт stm.TIM2.