pyb --- 与开发板相关的函数¶
警告
pyb 模块已弃用。 新代码请使用跨平台的 machine 模块——无论 MCU 系列如何,它在每一款 OpenMV Cam 上都能提供相同的功能,而 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 详细信息。它接受一个 (子类, 协议, 最大数据包长度, 轮询间隔, 报告描述符) 的元组。默认情况下,它将为 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 报告描述符。
- pyb.hid_mouse: tuple¶
预构建的 HID 描述符,用于具有相对 X/Y 移动的 3 键启动鼠标。该元组为
(1, 2, 4, 8, <mouse report descriptor>):启动子类、鼠标协议、4 字节输入报告(按键掩码 + X + Y + 滚轮)、每 8 ms 轮询一次。内置的报告描述符即pyb.USB_HID().send((buttons, dx, dy, wheel))所使用的那个。
- pyb.hid_keyboard: tuple¶
预构建的 HID 描述符,用于 USB 启动键盘。该元组为
(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 -- 3 线业余舵机驱动
- class SPI -- 由控制器驱动的串行协议
- class Timer —— 控制内部定时器
- class TimerChannel —— 为定时器设置一个通道
- class UART -- 双工串行通信总线
- class USB_HID -- USB 人机接口设备 (HID)
- class USB_VCP -- USB 虚拟通信端口