класс 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.