pyb --- 與開發板相關的函式

警告

pyb 模組已被棄用。 新程式碼請改用跨埠的 machine 模組——它在每一款 OpenMV Cam 上都提供相同的功能,不論 MCU 系列為何;而 pyb 僅存在於以 STM32 為基礎的開發板上。pyb 之所以保留,是為了與較舊的指令碼維持向後相容,不會再新增功能,且在未來版本中可能會被移除。

pyb 模組包含與開發板相關的 STM32 專屬函式。

其他雜項函式

pyb.have_cdc() bool

若 USB 以序列裝置形式連接,則傳回 True,否則傳回 False。

備註

此函式已被棄用。請改用 pyb.USB_VCP().isconnected()。

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

接收一個 4 元組(或串列),並將其傳送給 USB 主機(PC),以發出 HID 滑鼠移動事件的訊號。

備註

此函式已被棄用。請改用 pyb.USB_HID.send()

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

印出大量關於開發板的資訊。

pyb.main(filename: str) None

設定在 boot.py 完成後要執行的主指令碼檔名。若未呼叫此函式,則會執行預設檔案 main.py

只有在 boot.py 內呼叫此函式才有意義。

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

備註

此函式已被棄用。請改用 vfs.mount() / vfs.umount(),以及衍生自 vfs.AbstractBlockDev 的區塊裝置。

mountpoint 之下掛載一個區塊裝置。device 必須實作舊版 pyb 區塊裝置協定(同樣已被棄用——現代介面請參閱 vfs.AbstractBlockDev):

方法

用途

readblocks(self, blocknum, buf)

從區塊 blocknum 開始,自裝置複製 buf 大小的位元組量。buf 長度為 512 的倍數。

writeblocks(self, blocknum, buf) (選用)

從區塊 blocknum 開始,將 buf 寫入裝置。若省略此方法,則裝置以唯讀方式掛載。

count(self)

傳回裝置上 512 位元組區塊的數量。

sync(self) (選用)

清空任何快取的寫入。

mountpoint 是檔案系統根目錄中要掛載裝置的路徑;它必須以正斜線開頭。readonly 會強制唯讀掛載。mkfs 會在不存在任何檔案系統時建立新的檔案系統。

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

取得或設定要重複 REPL 的 UART 物件。

pyb.rng() int

傳回一個 30 位元的硬體產生亂數。

pyb.sync() None

同步所有檔案系統。

pyb.unique_id() bytes

傳回一個 12 位元組(96 位元)的字串,即 MCU 的唯一 ID。

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

若不帶引數呼叫,則以字串形式傳回目前的 USB 模式。

若呼叫時提供 modestr,則嘗試設定 USB 模式。可理解下列 modestr 值:

modestr

設定

None

停用 USB。

'VCP'

僅 VCP(虛擬 COM 埠)。

'MSC'

僅 MSC(USB 大量儲存類別)。

'VCP+MSC'

VCP 與 MSC。

'VCP+HID'

VCP 與 HID(人機介面裝置)。

'VCP+MSC+HID'

VCP、MSC 與 HID 同時。並非每一款 OpenMV Cam 都支援。

為了向後相容,'CDC' 會被理解為 'VCP''CDC+MSC''CDC+HID' 亦同)。

port 參數應為整數(0、1、...),用於在開發板支援多個 USB 埠時選取要使用哪一個。值為 -1 時使用預設或自動選取的埠。

vidpid 參數可讓您指定 VID(廠商 id)與 PID(產品 id)。pid 值為 -1 時,會根據 modestr 的值選取 PID。

若啟用 MSC 模式,可使用 msc 參數指定要在大量儲存介面上公開的 SCSI LUN 串列。例如 msc=(pyb.Flash(), pyb.SDCard())

若啟用 HID 模式,您也可以透過傳入 hid 關鍵字參數來指定 HID 細節。它接收一個 (subclass, protocol, max packet length, polling interval, report descriptor) 元組。預設情況下,它會為 USB 滑鼠設定適當的值。此外還有一個 pyb.hid_keyboard 常數,是適用於 USB 鍵盤的元組。

high_speed 參數設為 True 時,若硬體支援,則啟用 USB HS 模式。

常數

下方兩個常數都是現成的 5 元組,形式為

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

適合作為 usb_mode()hid 引數傳入,以使 OpenMV Cam 對主機顯示為一個 USB HID 裝置。subclass = 1 表示「開機介面」(boot interface),而 protocol 用於選取開機裝置類別(1 = 鍵盤,2 = 滑鼠)。第五個元素是一個 bytes 物件,內含主機列舉裝置時所使用的 HID 報告描述子(report descriptor)。

pyb.hid_mouse: tuple

適用於具相對 X/Y 移動的 3 鍵開機滑鼠的預先建構 HID 描述子。此元組為 (1, 2, 4, 8, <mouse report descriptor>):開機子類別、滑鼠協定、4 位元組輸入報告(按鈕遮罩 + X + Y + 滾輪),每 8 ms 輪詢一次。內建的報告描述子即 pyb.USB_HID().send((buttons, dx, dy, wheel)) 所使用的那一個。

pyb.hid_keyboard: tuple

適用於 USB 開機鍵盤的預先建構 HID 描述子。此元組為 (1, 1, 8, 8, <keyboard report descriptor>):開機子類別、鍵盤協定、8 位元組輸入報告(修飾位元組、一個保留位元組、六個同時按下的鍵碼),每 8 ms 輪詢一次。內建的報告描述子符合標準的 8 位元組 HID 開機鍵盤配置,因此透過 USB_HID.send() 傳送的報告應為形如 (modifiers, 0, key1, key2, key3, key4, key5, key6)bytes

類別