pyb — funcții legate de placă¶
Atenționare
Modulul pyb este învechit. Folosiți modulul machine, valabil pe toate porturile, pentru codul nou – acesta oferă aceleași funcționalități pe orice OpenMV Cam, indiferent de familia de MCU, în timp ce pyb există doar pe plăcile bazate pe STM32. pyb este păstrat pentru compatibilitate retroactivă cu scripturile mai vechi, nu i se vor adăuga funcționalități noi și ar putea fi eliminat într-o versiune viitoare.
Modulul pyb conține funcții specifice STM32 legate de placă.
Funcții diverse¶
- pyb.have_cdc() bool¶
Returnează True dacă USB este conectat ca dispozitiv serial, False în caz contrar.
Notă
Această funcție este învechită. Folosiți în schimb pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Preia un 4-tuplu (sau o listă) și îl trimite către gazda USB (PC-ul) pentru a semnala un eveniment de mișcare a mouse-ului HID.
Notă
Această funcție este învechită. Folosiți în schimb
pyb.USB_HID.send().
- pyb.main(filename: str) None¶
Setează numele fișierului scriptului principal care va fi rulat după finalizarea boot.py. Dacă această funcție nu este apelată, atunci se va executa fișierul implicit main.py.
Are sens să apelați această funcție doar din interiorul boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Notă
Această funcție este învechită. Folosiți în schimb
vfs.mount()/vfs.umount()și un dispozitiv de bloc derivat dinvfs.AbstractBlockDev.Montează un dispozitiv de bloc sub
mountpoint.devicetrebuie să implementeze protocolul vechi de dispozitiv de bloc pyb (de asemenea învechit – consultațivfs.AbstractBlockDevpentru interfața modernă):Metodă
Scop
readblocks(self, blocknum, buf)Copiază o cantitate de octeți cât
bufde pe dispozitiv, începând de la bloculblocknum. Lungimea luibufeste un multiplu de 512.writeblocks(self, blocknum, buf)(opțional)Scrie
bufpe dispozitiv, începând de la bloculblocknum. Dacă este omis, dispozitivul este montat doar pentru citire.count(self)Returnează numărul de blocuri de 512 octeți de pe dispozitiv.
sync(self)(opțional)Golește orice scrieri din cache.
mountpointeste calea din rădăcina sistemului de fișiere unde se montează dispozitivul; trebuie să înceapă cu o bară oblică înainte.readonlyforțează o montare doar pentru citire.mkfscreează un nou sistem de fișiere dacă nu există niciunul.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Obține sau setează obiectul UART pe care este replicat REPL-ul.
- pyb.unique_id() bytes¶
Returnează un șir de 12 octeți (96 de biți), care reprezintă ID-ul unic al MCU-ului.
- pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None¶
Dacă este apelată fără argumente, returnează modul USB curent sub formă de șir.
Dacă este apelată cu modestr furnizat, încearcă să configureze modul USB. Sunt acceptate următoarele valori ale lui modestr:
modestr
Configurează
NoneDezactivează USB.
'VCP'Doar VCP (Virtual COM Port).
'MSC'Doar MSC (USB mass storage class).
'VCP+MSC'VCP și MSC.
'VCP+HID'VCP și HID (human interface device).
'VCP+MSC+HID'VCP, MSC și HID împreună. Nu este acceptat pe fiecare OpenMV Cam.
Pentru compatibilitate retroactivă,
'CDC'este interpretat ca însemnând'VCP'(și în mod similar pentru'CDC+MSC'și'CDC+HID').Parametrul port ar trebui să fie un număr întreg (0, 1, …) și selectează portul USB de utilizat dacă placa acceptă mai multe porturi. O valoare de -1 folosește portul implicit sau cel selectat automat.
Parametrii vid și pid vă permit să specificați VID-ul (vendor id) și PID-ul (product id). O valoare pid de -1 va selecta un PID în funcție de valoarea lui modestr.
Dacă activați modul MSC, parametrul msc poate fi folosit pentru a specifica o listă de LUN-uri SCSI care să fie expuse pe interfața de stocare în masă. De exemplu
msc=(pyb.Flash(), pyb.SDCard()).Dacă activați modul HID, puteți specifica și detaliile HID transmițând parametrul-cheie hid. Acesta preia un tuplu de (subclass, protocol, max packet length, polling interval, report descriptor). În mod implicit, va seta valori adecvate pentru un mouse USB. Există de asemenea o constantă
pyb.hid_keyboard, care este un tuplu adecvat pentru o tastatură USB.Parametrul high_speed, când este setat la
True, activează modul USB HS dacă este acceptat de hardware.
Constante¶
Ambele constante de mai jos sunt 5-tupluri gata pregătite, de forma
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
potrivite pentru a fi transmise ca argument hid al usb_mode() pentru a face OpenMV Cam să apară gazdei ca un dispozitiv USB HID. subclass = 1 înseamnă „boot interface”, iar protocol selectează clasa de dispozitiv boot (1 = tastatură, 2 = mouse). Al cincilea element este un obiect bytes care conține descriptorul de raport HID utilizat când gazda enumeră dispozitivul.
- pyb.hid_mouse: tuple¶
Descriptor HID pre-construit pentru un mouse boot cu 3 butoane cu mișcare relativă X/Y. Tuplul este
(1, 2, 4, 8, <mouse report descriptor>): subclasa boot, protocol mouse, rapoarte de intrare de 4 octeți (masca de butoane + X + Y + rotiță), interogate la fiecare 8 ms. Descriptorul de raport încorporat este cel folosit depyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Descriptor HID pre-construit pentru o tastatură boot USB. Tuplul este
(1, 1, 8, 8, <keyboard report descriptor>): subclasa boot, protocol tastatură, rapoarte de intrare de 8 octeți (octet modificator, un octet rezervat, șase coduri de taste concurente), interogate la fiecare 8 ms. Descriptorul de raport încorporat corespunde structurii standard de tastatură boot HID pe 8 octeți, astfel încât raportul trimis prinUSB_HID.send()ar trebui să fie unbytesde forma(modifiers, 0, key1, key2, key3, key4, key5, key6).
Clase¶
- clasa ADC – conversie analog-digitală
- clasa ADCAll – acces la toate canalele ADC
- class CAN – magistrală de comunicație controller area network
- clasa DAC – conversie digital-analogică
- clasa ExtInt – configurarea pinilor I/O pentru a întrerupe la evenimente externe
- clasa Flash – acces la stocarea flash încorporată
- clasa I2C – un protocol serial pe două fire
- clasa LED – LED-ul de pe placă
- clasa Pin – controlul pinilor I/O
- clasa PinAF – funcții alternative ale pinului
- clasa RTC – ceas în timp real
- clasa Servo – driver pentru servo hobby cu 3 fire
- clasa SPI – un protocol serial condus de un controler
- class Timer – controlul temporizatoarelor interne
- class TimerChannel – configurarea unui canal pentru un temporizator
- class UART – magistrală de comunicație serială duplex
- class USB_HID – dispozitiv USB de interfață cu utilizatorul (HID)
- class USB_VCP – port de comunicație virtual USB