class Pin – I/O-nastojen ohjaus¶
Pin-objekti edustaa yksittäistä GPIO:ta STM32:ssa. Se tarjoaa metodit nastan tilan (tulo, lähtö, vaihtoehtoinen toiminto, analoginen) ja vetovastusten määrittämiseen sekä sen digitaalisen tason lukemiseen tai ohjaamiseen. Analogista näytteenottoa varten katso pyb.ADC; vaihtoehtoisten toimintojen luettelointia varten katso PinAF.
Kaikki liitinnastat on määritelty valmiiksi muodossa pyb.Pin.board.<name>. Useimmat STM32-pohjaiset OpenMV Cam -kamerat tarjoavat I/O-liittimen nastat P0 … P9; OpenMV Cam N6 tarjoaa lisänastoja aina P18 asti:
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Taustalla olevaan STM32-porttiin/-nastaan voi viitata myös suoraan muodossa pyb.Pin.cpu.<name>, joka nimetään porttikirjaimella ja sen perään tulevalla nastan numerolla (esimerkiksi pyb.Pin.cpu.A0). Kunkin OpenMV-liitinnastan vastaavuus CPU-nastaan on kortin kiinteästi määrittämä.
Nastoja voidaan valita myös merkkijononimellä:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Käyttäjän määrittämiä nimiä voidaan lisätä metodilla Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
ja kysellä takaisin:
pin = pyb.Pin("LeftMotorDir")
Vaihtoehtoisesti mukautettu vastaavuusfunktio voidaan asentaa metodilla Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
joten kutsu pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) välittää "LeftMotorDir" suoraan vastaavuusfunktiolle.
Seuraava järjestys määrää, miten nimi yhdistetään fyysiseen nastaan:
Pin-objekti välitetään suoraan.Käyttäjän toimittama vastaavuusfunktio palauttaa nastan.
Käyttäjän toimittama sanakirja sisältää vastaavan avaimen.
Merkkijono vastaa kortin nastan nimeä (
P0,P1, …).Merkkijono vastaa CPU:n portin/nastan nimeä (
A0,B7, …).
Kutsu pyb.Pin.debug(True) tulostaaksesi diagnostiikkatietoja siitä, miten kukin objekti yhdistetään nastaan.
Konstruktorit¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Luo uusi Pin-objekti, joka liittyy annettuun
id-tunnukseen. Jos lisäargumentteja annetaan, ne välitetään metodillePin.init()nastan määrittämiseksi.Luokkametodit¶
Metodit¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Alusta nasta:
mode voi olla yksi seuraavista:
Pin.IN- määritä nasta tuloksi;Pin.OUT_PP- määritä nasta lähdöksi push-pull-ohjauksella;Pin.OUT_OD- määritä nasta lähdöksi avokollektoriohjauksella;Pin.ALT- määritä nasta vaihtoehtoiselle toiminnolle, tuloksi tai lähdöksi;Pin.AF_PP- määritä nasta vaihtoehtoiselle toiminnolle, push-pull;Pin.AF_OD- määritä nasta vaihtoehtoiselle toiminnolle, avokollektori;Pin.ANALOG- määritä nasta analogiseksi.
pull voi olla yksi seuraavista:
Pin.PULL_NONE- ei ylös- tai alasvetovastuksia;Pin.PULL_UP- ota ylösvetovastus käyttöön;Pin.PULL_DOWN- ota alasvetovastus käyttöön.
Kun nastalla on käytössä ylösvetotila
Pin.PULL_UPtai alasvetotilaPin.PULL_DOWN, kyseinen nasta vedetään sisäisen vastuksen kautta vastaavasti 3V3:een tai GND:hen (tyypillisesti kymmeniä kilo-ohmeja – katso käytössä olevan OpenMV Camin sähköiset ominaisuudet STM32:n datalehdestä).value asettaa portin lähtöarvon ennen nastan käyttöönottoa, ellei se ole None.
alt-argumenttia voidaan käyttää, kun tilana on
Pin.ALT,Pin.AF_PPtaiPin.AF_OD, asettamaan nastaan liittyvän vaihtoehtoisen toiminnon indeksi tai nimi. Tätä argumenttia kutsuttiin aiemmin nimelläaf, jota voidaan edelleen tarvittaessa käyttää.
- value(value: Any | None = None) int | None¶
Hae tai aseta nastan digitaalinen looginen taso:
Ilman argumenttia palauttaa 0 tai 1 nastan loogisen tason mukaan.
Kun
valueannetaan, asettaa nastan loogisen tason.valuevoi olla mitä tahansa, mikä muuntuu totuusarvoksi. Jos se muuntuu arvoksiTrue, nasta asetetaan ylätasolle, muutoin alatasolle.
- af() int¶
Palauttaa nastan tällä hetkellä määritetyn vaihtoehtoisen toiminnon. Palautettu kokonaisluku vastaa yhtä init-funktion af-argumentin sallituista vakioista.
- af_list() List[PinAF]¶
Palauttaa taulukon tälle nastalle saatavilla olevista vaihtoehtoisista toiminnoista.
Vakiot¶