class Pin – I/O pinlerini denetleme¶
Bir Pin nesnesi, STM32 üzerindeki tek bir GPIO’yu temsil eder. Pinin modunu (giriş, çıkış, alternatif işlev, analog) ve çekme dirençlerini yapılandırmak, dijital seviyesini okumak veya sürmek için yöntemler sağlar. Analog örnekleme için pyb.ADC bölümüne; alternatif işlev numaralandırması için PinAF bölümüne bakın.
Tüm başlık pinleri pyb.Pin.board.<name> olarak önceden tanımlanmıştır. Çoğu STM32 OpenMV Cam, P0 … P9 I/O başlık pinlerini sunar; OpenMV Cam N6 ise P18‘e kadar ek pinler sunar:
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Alttaki STM32 port/pini, port harfinin ardından pin numarası gelecek şekilde adlandırılan pyb.Pin.cpu.<name> aracılığıyla doğrudan da adreslenebilir (örneğin pyb.Pin.cpu.A0). Her bir OpenMV başlık pininin bir CPU pinine eşlenmesi kart tarafından sabitlenmiştir.
Pinler ayrıca dize adıyla da seçilebilir:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Kullanıcı tanımlı adlar Pin.dict() ile eklenebilir:
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
ve geri sorgulanabilir:
pin = pyb.Pin("LeftMotorDir")
Alternatif olarak, Pin.mapper() ile özel bir eşleme işlevi kurulabilir:
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
böylece pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) çağrısı, "LeftMotorDir" değerini doğrudan eşleyiciye iletir.
Bir adın fiziksel bir pine nasıl eşleneceğini aşağıdaki sıra belirler:
Bir
Pinnesnesi doğrudan iletilir.Kullanıcının sağladığı eşleyici işlevi bir pin döndürür.
Kullanıcının sağladığı sözlük eşleşen bir anahtar içerir.
Dize, bir kart pin adıyla eşleşir (
P0,P1, …).Dize, bir CPU port/pin adıyla eşleşir (
A0,B7, …).
Her bir nesnenin bir pine nasıl eşlendiğine ilişkin tanılama bilgilerini yazdırmak için pyb.Pin.debug(True) çağrısını yapın.
Yapıcılar¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Verilen
idile ilişkili yeni bir Pin nesnesi oluşturur. Ek argümanlar verilirse, bunlar pini yapılandırmak içinPin.init()yöntemine iletilir.Sınıf yöntemleri¶
Yöntemler¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Pini başlatır:
mode şunlardan biri olabilir:
Pin.IN- pini giriş için yapılandırır;Pin.OUT_PP- pini push-pull denetimiyle çıkış için yapılandırır;Pin.OUT_OD- pini open-drain denetimiyle çıkış için yapılandırır;Pin.ALT- pini alternatif işlev, giriş veya çıkış için yapılandırır;Pin.AF_PP- pini alternatif işlev, push-pull için yapılandırır;Pin.AF_OD- pini alternatif işlev, open-drain için yapılandırır;Pin.ANALOG- pini analog için yapılandırır.
pull şunlardan biri olabilir:
Pin.PULL_NONE- çekme yukarı veya çekme aşağı direnci yok;Pin.PULL_UP- çekme yukarı direncini etkinleştirir;Pin.PULL_DOWN- çekme aşağı direncini etkinleştirir.
Bir pinde
Pin.PULL_UPveyaPin.PULL_DOWNçekme modu etkinleştirildiğinde, o pin dahili bir direnç (tipik olarak onlarca kOhm – kullanılan OpenMV Cam’e ait STM32 veri sayfasındaki elektriksel özelliklere bakın) aracılığıyla sırasıyla 3V3 veya GND’ye çekilir.value None değilse, pin etkinleştirilmeden önce port çıkış değerini ayarlar.
alt, mod
Pin.ALT,Pin.AF_PPveyaPin.AF_ODolduğunda, bir pinle ilişkili alternatif işlevlerden birinin dizinini veya adını ayarlamak için kullanılabilir. Bu argüman daha önceafolarak adlandırılıyordu ve gerekirse hâlâ kullanılabilir.
- value(value: Any | None = None) int | None¶
Pinin dijital mantık seviyesini alır veya ayarlar:
Argüman verilmezse, pinin mantık seviyesine bağlı olarak 0 veya 1 döndürür.
valueverildiğinde, pinin mantık seviyesini ayarlar.value, bir boole değerine dönüştürülebilen herhangi bir şey olabilir.Truedeğerine dönüşürse pin yüksek seviyeye, aksi takdirde düşük seviyeye ayarlanır.
- af() int¶
Pinin o anda yapılandırılmış alternatif işlevini döndürür. Döndürülen tam sayı, init işlevinin af argümanı için izin verilen sabitlerden biriyle eşleşir.
Sabitler¶