pyb — functies die betrekking hebben op het board

Waarschuwing

De pyb-module is verouderd. Gebruik voor nieuwe code de port-overstijgende machine-module – deze biedt dezelfde functionaliteit op elke OpenMV Cam, ongeacht de MCU-familie, terwijl pyb alleen bestaat op de STM32-gebaseerde boards. pyb wordt behouden voor achterwaartse compatibiliteit met oudere scripts, er worden geen nieuwe functies aan toegevoegd en het kan in een toekomstige release worden verwijderd.

De pyb-module bevat STM32-specifieke functies die betrekking hebben op het board.

Diverse functies

pyb.have_cdc() bool

Geeft True terug als USB is aangesloten als serieel apparaat, anders False.

Notitie

Deze functie is verouderd. Gebruik in plaats daarvan pyb.USB_VCP().isconnected().

pyb.hid(data: Tuple[int, int, int, int]) None

Neemt een 4-tuple (of lijst) en stuurt deze naar de USB-host (de pc) om een HID-muisbewegingsgebeurtenis te signaleren.

Notitie

Deze functie is verouderd. Gebruik in plaats daarvan pyb.USB_HID.send().

pyb.info(dump_alloc_table: bool | None = None) None

Druk veel informatie over het board af.

pyb.main(filename: str) None

Stel de bestandsnaam in van het hoofdscript dat moet worden uitgevoerd nadat boot.py is voltooid. Als deze functie niet wordt aangeroepen, wordt het standaardbestand main.py uitgevoerd.

Het heeft alleen zin om deze functie aan te roepen vanuit boot.py.

pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None

Notitie

Deze functie is verouderd. Gebruik in plaats daarvan vfs.mount() / vfs.umount() en een blokapparaat dat is afgeleid van vfs.AbstractBlockDev.

Koppel een blokapparaat onder mountpoint. device moet het verouderde pyb blokapparaat-protocol implementeren (ook verouderd – zie vfs.AbstractBlockDev voor de moderne interface):

Methode

Doel

readblocks(self, blocknum, buf)

Kopieer buf aan bytes van het apparaat, beginnend bij blok blocknum. De lengte van buf is een veelvoud van 512.

writeblocks(self, blocknum, buf) (optioneel)

Schrijf buf naar het apparaat, beginnend bij blok blocknum. Indien weggelaten, wordt het apparaat alleen-lezen gekoppeld.

count(self)

Geeft het aantal blokken van 512 bytes op het apparaat terug.

sync(self) (optioneel)

Schrijf eventuele gecachte schrijfacties weg.

mountpoint is het pad in de root van het bestandssysteem waar het apparaat aan moet worden gekoppeld; het moet beginnen met een schuine streep naar voren. readonly forceert een alleen-lezen koppeling. mkfs maakt een nieuw bestandssysteem aan als er geen aanwezig is.

pyb.repl_uart(uart: UART | None = None) UART | None

Haal het UART-object op waarop de REPL wordt herhaald, of stel dit in.

pyb.rng() int

Geeft een 30-bits door hardware gegenereerd willekeurig getal terug.

pyb.sync() None

Synchroniseer alle bestandssystemen.

pyb.unique_id() bytes

Geeft een string van 12 bytes (96 bits) terug, die de unieke ID van de MCU is.

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

Indien aangeroepen zonder argumenten, geeft de huidige USB-modus als string terug.

Indien aangeroepen met modestr opgegeven, wordt geprobeerd de USB-modus te configureren. De volgende waarden van modestr worden begrepen:

modestr

Configureert

None

Schakelt USB uit.

'VCP'

Alleen VCP (Virtual COM Port).

'MSC'

Alleen MSC (USB mass storage class).

'VCP+MSC'

VCP en MSC.

'VCP+HID'

VCP en HID (human interface device).

'VCP+MSC+HID'

VCP, MSC en HID samen. Niet ondersteund op elke OpenMV Cam.

Voor achterwaartse compatibiliteit wordt 'CDC' begrepen als 'VCP' (en evenzo voor 'CDC+MSC' en 'CDC+HID').

De parameter port moet een geheel getal zijn (0, 1, …) en selecteert welke USB-poort moet worden gebruikt als het board meerdere poorten ondersteunt. Een waarde van -1 gebruikt de standaard- of automatisch geselecteerde poort.

Met de parameters vid en pid kunt u de VID (vendor id) en PID (product id) opgeven. Een pid-waarde van -1 selecteert een PID op basis van de waarde van modestr.

Bij het inschakelen van de MSC-modus kan de parameter msc worden gebruikt om een lijst van SCSI-LUN’s op te geven die op de mass-storage-interface moeten worden weergegeven. Bijvoorbeeld msc=(pyb.Flash(), pyb.SDCard()).

Bij het inschakelen van de HID-modus kunt u ook de HID-details opgeven door de sleutelwoordparameter hid mee te geven. Deze neemt een tuple van (subclass, protocol, max packet length, polling interval, report descriptor). Standaard stelt het passende waarden in voor een USB-muis. Er is ook een constante pyb.hid_keyboard, wat een passende tuple is voor een USB-toetsenbord.

De parameter high_speed, indien ingesteld op True, schakelt USB HS-modus in als deze door de hardware wordt ondersteund.

Constanten

Beide onderstaande constanten zijn kant-en-klare 5-tuples in de vorm

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

geschikt om door te geven als het hid-argument van usb_mode() om de OpenMV Cam aan de host te laten verschijnen als een USB HID-apparaat. subclass = 1 betekent “boot interface” en protocol selecteert de boot-apparaatklasse (1 = toetsenbord, 2 = muis). Het vijfde element is een bytes-object dat de HID report descriptor bevat die wordt gebruikt wanneer de host het apparaat enumereert.

pyb.hid_mouse: tuple

Kant-en-klare HID descriptor voor een boot-muis met 3 knoppen en relatieve X/Y-beweging. De tuple is (1, 2, 4, 8, <mouse report descriptor>): boot-subclass, muisprotocol, invoerrapporten van 4 bytes (knopmasker + X + Y + wiel), elke 8 ms gepolld. De ingebouwde report descriptor is dezelfde die wordt gebruikt door pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Kant-en-klare HID descriptor voor een USB boot-toetsenbord. De tuple is (1, 1, 8, 8, <keyboard report descriptor>): boot-subclass, toetsenbordprotocol, invoerrapporten van 8 bytes (modifierbyte, één gereserveerde byte, zes gelijktijdige toetscodes), elke 8 ms gepolld. De ingebouwde report descriptor komt overeen met de standaard HID boot-toetsenbordindeling van 8 bytes, dus het rapport dat via USB_HID.send() wordt verstuurd moet een bytes zijn van de vorm (modifiers, 0, key1, key2, key3, key4, key5, key6).

Klassen