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.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.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 時使用預設或自動選取的埠。
vid 與 pid 參數可讓您指定 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。
類別¶
- class ADC -- 類比數位轉換
- class ADCAll -- 存取所有 ADC 通道
- class CAN -- 控制器區域網路通訊匯流排
- class DAC -- 數位轉類比轉換
- class ExtInt -- 設定 I/O 接腳以在外部事件時中斷
- class Flash -- 存取內建的快閃記憶體儲存空間
- class I2C -- 雙線序列協定
- class LED -- 板載 LED
- class Pin -- 控制 I/O 接腳
- class PinAF -- 接腳替代功能
- class RTC -- 即時時鐘
- class Servo -- 三線式玩具伺服馬達驅動程式
- class SPI -- 由控制器驅動的串列協定
- class Timer -- 控制內部計時器
- class TimerChannel -- 為計時器設定一個通道
- class UART -- 雙工序列通訊匯流排
- class USB_HID -- USB 人機介面裝置(HID)
- class USB_VCP -- USB 虛擬通訊埠