klasa Pin – sterowanie pinami we/wy¶
Obiekt Pin reprezentuje pojedynczy pin GPIO na układzie STM32. Udostępnia metody konfiguracji trybu pinu (wejście, wyjście, funkcja alternatywna, analogowy) oraz rezystorów podciągających, a także odczytu lub ustawiania jego poziomu cyfrowego. Próbkowanie analogowe opisano w pyb.ADC; wyliczanie funkcji alternatywnych opisano w PinAF.
Wszystkie piny złącza są predefiniowane jako pyb.Pin.board.<name>. Większość kamer STM32 OpenMV Cam udostępnia piny we/wy złącza P0 … P9; OpenMV Cam N6 udostępnia dodatkowe piny aż do P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Bazowy port/pin STM32 można również zaadresować bezpośrednio przez pyb.Pin.cpu.<name>, nazwany literą portu, po której następuje numer pinu (na przykład pyb.Pin.cpu.A0). Mapowanie każdego pinu złącza OpenMV na pin CPU jest ustalone przez płytkę.
Piny można również wybierać po nazwie tekstowej:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Nazwy zdefiniowane przez użytkownika można dodać za pomocą Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
i odpytać zwrotnie:
pin = pyb.Pin("LeftMotorDir")
Alternatywnie można zainstalować niestandardową funkcję mapującą za pomocą Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
tak więc wywołanie pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) przekazuje "LeftMotorDir" bezpośrednio do funkcji mapującej.
Poniższa kolejność określa, w jaki sposób nazwa jest mapowana na fizyczny pin:
Obiekt
Pinjest przekazywany bezpośrednio.Dostarczona przez użytkownika funkcja mapująca zwraca pin.
Dostarczony przez użytkownika słownik zawiera pasujący klucz.
Łańcuch znaków pasuje do nazwy pinu płytki (
P0,P1, …).Łańcuch znaków pasuje do nazwy portu/pinu CPU (
A0,B7, …).
Wywołaj pyb.Pin.debug(True), aby wypisać informacje diagnostyczne o tym, jak każdy obiekt jest mapowany na pin.
Konstruktory¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Tworzy nowy obiekt Pin powiązany z podanym
id. Jeśli podano dodatkowe argumenty, są one przekazywane doPin.init()w celu skonfigurowania pinu.Metody klasowe¶
- classmethod debug(state: bool | None = None) bool | None¶
Pobiera lub ustawia stan debugowania (
TruelubFalsedla włączenia lub wyłączenia).
Metody¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Inicjalizuje pin:
mode może być jednym z:
Pin.IN- konfiguruje pin jako wejście;Pin.OUT_PP- konfiguruje pin jako wyjście, ze sterowaniem typu push-pull;Pin.OUT_OD- konfiguruje pin jako wyjście, ze sterowaniem typu open-drain;Pin.ALT- konfiguruje pin dla funkcji alternatywnej, wejściowej lub wyjściowej;Pin.AF_PP- konfiguruje pin dla funkcji alternatywnej, push-pull;Pin.AF_OD- konfiguruje pin dla funkcji alternatywnej, open-drain;Pin.ANALOG- konfiguruje pin jako analogowy.
pull może być jednym z:
Pin.PULL_NONE- brak rezystorów podciągających w górę lub w dół;Pin.PULL_UP- włącza rezystor podciągający w górę;Pin.PULL_DOWN- włącza rezystor podciągający w dół.
Gdy pin ma włączony tryb podciągania
Pin.PULL_UPlubPin.PULL_DOWN, pin ten jest podciągany odpowiednio do 3V3 lub GND przez wewnętrzny rezystor (zwykle dziesiątki kOhm – patrz charakterystyki elektryczne w karcie katalogowej STM32 dla używanej kamery OpenMV Cam).value jeśli nie jest None, ustawi wartość wyjściową portu przed włączeniem pinu.
alt można użyć, gdy tryb to
Pin.ALT,Pin.AF_PPlubPin.AF_OD, aby ustawić indeks lub nazwę jednej z funkcji alternatywnych powiązanych z pinem. Argument ten nazywał się wcześniejafi nadal może być używany w razie potrzeby.
- value(value: Any | None = None) int | None¶
Pobiera lub ustawia poziom logiczny cyfrowy pinu:
Bez argumentu zwraca 0 lub 1 w zależności od poziomu logicznego pinu.
Gdy podano
value, ustawia poziom logiczny pinu.valuemoże być czymkolwiek, co konwertuje się na wartość logiczną. Jeśli konwertuje się naTrue, pin jest ustawiany na stan wysoki, w przeciwnym razie na niski.
- af() int¶
Zwraca aktualnie skonfigurowaną funkcję alternatywną pinu. Zwrócona liczba całkowita będzie odpowiadać jednej z dozwolonych stałych dla argumentu af funkcji init.
Stałe¶