kelas Pin -- mengontrol pin I/O¶
Objek Pin merepresentasikan satu GPIO pada STM32. Objek ini menyediakan metode untuk mengonfigurasi mode pin (input, output, fungsi alternatif, analog) dan resistor pull, serta untuk membaca atau menggerakkan level digitalnya. Untuk pengambilan sampel analog lihat pyb.ADC; untuk enumerasi fungsi alternatif lihat PinAF.
Semua pin header telah didefinisikan sebelumnya sebagai pyb.Pin.board.<name>. Sebagian besar STM32 OpenMV Cam mengekspos pin header I/O P0 ... P9; OpenMV Cam N6 mengekspos pin tambahan hingga P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Port/pin STM32 yang mendasarinya juga dapat dialamatkan langsung melalui pyb.Pin.cpu.<name>, dinamai sebagai huruf port diikuti nomor pin (misalnya pyb.Pin.cpu.A0). Pemetaan setiap pin header OpenMV ke pin CPU ditentukan oleh board.
Pin juga dapat dipilih berdasarkan nama string:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Nama yang ditentukan pengguna dapat ditambahkan dengan Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
dan dapat diquery kembali:
pin = pyb.Pin("LeftMotorDir")
Selain itu, fungsi pemetaan kustom dapat dipasang dengan Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
sehingga panggilan ke pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) meneruskan "LeftMotorDir" langsung ke mapper.
Urutan berikut menentukan bagaimana sebuah nama dipetakan ke pin fisik:
Objek
Pinditeruskan langsung.Fungsi mapper yang disediakan pengguna mengembalikan sebuah pin.
Kamus yang disediakan pengguna memiliki kunci yang cocok.
String cocok dengan nama pin board (
P0,P1, ...).String cocok dengan nama port/pin CPU (
A0,B7, ...).
Panggil pyb.Pin.debug(True) untuk mencetak informasi diagnostik tentang bagaimana setiap objek dipetakan ke sebuah pin.
Konstruktor¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Membuat objek Pin baru yang terkait dengan
idyang diberikan. Jika argumen tambahan diberikan, argumen tersebut diteruskan kePin.init()untuk mengonfigurasi pin.Metode kelas¶
- classmethod debug(state: bool | None = None) bool | None¶
Mendapatkan atau menetapkan status debugging (
TrueatauFalseuntuk aktif atau nonaktif).
Metode¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Menginisialisasi pin:
mode dapat berupa salah satu dari:
Pin.IN- mengonfigurasi pin untuk input;Pin.OUT_PP- mengonfigurasi pin untuk output, dengan kontrol push-pull;Pin.OUT_OD- mengonfigurasi pin untuk output, dengan kontrol open-drain;Pin.ALT- mengonfigurasi pin untuk fungsi alternatif, input atau output;Pin.AF_PP- mengonfigurasi pin untuk fungsi alternatif, push-pull;Pin.AF_OD- mengonfigurasi pin untuk fungsi alternatif, open-drain;Pin.ANALOG- mengonfigurasi pin untuk analog.
pull dapat berupa salah satu dari:
Pin.PULL_NONE- tidak ada resistor pull-up atau pull-down;Pin.PULL_UP- mengaktifkan resistor pull-up;Pin.PULL_DOWN- mengaktifkan resistor pull-down.
Ketika sebuah pin memiliki mode pull
Pin.PULL_UPatauPin.PULL_DOWNyang diaktifkan, pin tersebut ditarik ke 3V3 atau GND masing-masing melalui resistor internal (biasanya puluhan kOhm -- lihat karakteristik listrik dalam datasheet STM32 untuk OpenMV Cam yang digunakan).value jika tidak None akan menetapkan nilai output port sebelum mengaktifkan pin.
alt dapat digunakan ketika mode adalah
Pin.ALT,Pin.AF_PPatauPin.AF_ODuntuk menetapkan indeks atau nama salah satu fungsi alternatif yang terkait dengan pin. Argumen ini sebelumnya disebutafyang masih dapat digunakan jika diperlukan.
- value(value: Any | None = None) int | None¶
Mendapatkan atau menetapkan level logika digital dari pin:
Tanpa argumen, mengembalikan 0 atau 1 tergantung pada level logika pin.
Dengan
valueyang diberikan, menetapkan level logika pin.valuedapat berupa apa saja yang dapat dikonversi ke boolean. Jika dikonversi keTrue, pin ditetapkan tinggi, jika tidak maka ditetapkan rendah.
- af() int¶
Mengembalikan fungsi alternatif yang sedang dikonfigurasi untuk pin. Integer yang dikembalikan akan cocok dengan salah satu konstanta yang diizinkan untuk argumen af ke fungsi init.
Konstanta¶