pyb 模块包含了和 pyboard 相关的函数。
时间函数
-
pyb.delay(ms)
延时毫秒。 -
pyb.udelay(us)
延时微秒。 -
pyb.millis()
返回启动后运行的时间(毫秒)。
返回值是 micropython smallint 类型 (31 位有符号整数), 因此在 2^30 毫秒后 (大约 12.4 天) 它将变为负数。
注意如果调用 pyb.stop() 将停止硬件计数器,因此在 “休眠” 时将计数。它也会影响 pyb.elapsed_millis(). -
pyb.micros()
返回复位后的微秒。
返回值是 micropython smallint 类型 (31 位有符号整数), 因此在 2^30 微秒后 (约 17.8 分钟) 将变为负数。 -
pyb.elapsed_millis(start)
返回从 start 时刻后到现在的时间(毫秒)。
这个函数考虑到计数器的回绕,因此返回值总是正数。因此它可以用于测量最高 12.4 天。
例子:
start = pyb.millis()
while pyb.elapsed_millis(start) < 1000:
pyb.elapsed_micros(start)
返回从 start 时刻到现在的时间(微秒)。
这个函数考虑到计数器的回绕,因此返回值总是正数。因此它可以用于测量最高 17.8 分钟。
例子:
start = pyb.micros()
while pyb.elapsed_micros(start) < 1000:
pass
复位函数
-
pyb.hard_reset()
复位,和按下复位键的效果相同。 -
pyb.bootloader()
直接进入 bootloader 。
中断函数
-
pyb.disable_irq()
禁止中断。返回之前的中断允许状态。返回值可以在 enable_irq 函数中用于恢复中断允许状态。 -
pyb.enable_irq(state=True)
state 是 True 时(默认)允许中断,是 False 时禁止中断。常用于退出关键时区时恢复中断。
功率函数
-
pyb.freq(sysclk, hclk, pclk1, pclk2)
无参数时,返回当前时钟频率,包括: (sysclk, hclk, pclk1, pclk2)。它对应着: -
sysclk: CPU 时钟频率
-
hclk: AHB、内存和 DMA 总线频率
-
pclk1: APB1 总线频率
-
pclk2: APB2 总线频率
如果指定参数,将设置 CPU 频率。频率单位是 Hz,如 freq(120000000) 设置 sysclk (CPU 频率) 到120MHz。注意并非任何参数都能使用,支持的时钟频率有(MHz): 8, 16, 24, 30, 32, 36, 40, 42, 48,54, 56, 60, 64, 72, 84, 96, 108, 120, 144, 168等。最大的 hclk 是 168MHz,pclk1 是 42MHz, pclk2 是 84MHz。不要设置频率超过这个范围。
hclk, pclk1 和 pclk2 频率由系统时钟分频而来,hclk 支持的分频比是: 1, 2, 4, 8, 16, 64, 128,256, 512。pclk1 和 pclk2 的分配比是: 1, 2, 4, 8。
sysclk 在 8MHz 时直接使用 HSE (外部振荡器) ,在 16MHz 时直接使用 HSI (内部振荡器)。高于这个频率时使用 HSE 驱动 PLL (锁相环)输出。
注意改变时钟频率时如果通过 USB 连接到计算机,将使 USB 变为不可用。因此最好在 boot.py 中改变时钟,这时 USB
外设还没有启用。此外当系统时钟低于 36MHz 时 USB 功能将不能使用。
-
pyb.wfi()
等待内部或外部中断。执行 wfi 指令以降低功耗,直到发生任何中断 (内部或外部),然后继续运行。注意 system-tick 中断每毫秒 (1000Hz) 发生一次,因此它最多阻塞 1ms. -
pyb.stop()
进入 “sleeping” 状态,可以降低功耗到 500 uA。从睡眠模式唤醒,需要外部中断或者实时时钟事件,唤醒后从睡眠的位置继续运行。
查看 rtc.wakeup() 配置实时时钟唤醒事件。 -
pyb.standby()
进入 “deep sleep” 状态, 功耗将低于 50 uA。从深度睡眠模式唤醒需要实时时钟事件,或 X1 引脚外部中断 (PA0=WKUP),或者 X18 (PC13=TAMP1)。唤醒后将执行复位。
查看 rtc.wakeup() 配置实时时钟唤醒事件。
其他函数
pyb.have_cdc()
如果 USB 连接并作为串口设备就返回 True,否则返回 False。
注意这个函数已废弃,以后请使用 pyb.USB_VCP().isconnected() 。
pyb.hid((buttons, x, y, z))
获取 4 参数元组 (或列表) 并发送到 USB 主机 (PC) ,驱动 HID 鼠标。
注意这个函数已经废弃,请使用 pyb.USB_HID().send(…)。
-
pyb.info()
打印开发板的信息。 -
pyb.main(filename)
设置在 boot.py 运行后启动的 main 脚本的文件名,如果没有调用这个函数,将执行默认文件 main.py。
只有在 boot.py 中调用这个函数才有效。 -
pyb.mount(device, mountpoint, *, readonly=False, mkfs=False)
加载设备,并作为文件系统的一部分。设备必须提供下面的协议: readblocks(self, blocknum, buf)
writeblocks(self, blocknum, buf) (optional) count(self) sync(self)
(optional) readblocks 和 writeblocks 需要在 buf 和设备之间复制数据。buf 是 512 倍数的
bytearray。如果没有定义 writeblocks,那么设备将加载为只读模式,两个函数的返回值被忽略。 count 返回 device
的块数量,sync, 同步数据到设备。 mountpoint 在文件系统的 root 下,必须以右斜杠开头。 如果 readonly 是
True,设备会加载为只读模式,否则加载为读写模式。 如果 mkfs 是 True,那么将创建新的文件系统。 卸载设备,以 None
作为设备名参数,挂载点作为 mountpoint。
-
pyb.repl_uart(uart)
获取获设置 REPL 的串口。 -
pyb.rng()
返回 30 位随机数,它由RNG硬件产生。(注如果没有RNG模块,这个函数将不可用) -
pyb.sync()
同步所有文件系统。 -
pyb.unique_id()
返回 12 字节 (96 位) 的唯一 ID 号。
Classes
class Accel – 加速度传感器
class ADC – 模拟到数字转换
class CAN – CAN 总线通信
class DAC – 数字到模拟转换
class ExtInt – 外部中断
class I2C – 两线通信协议
class LCD – pyskin LCD 控制 LCD
class LED – LED 对象
class Pin – 控制 I/O
class PinAF – Pin 替代功能
class RTC – 实时时钟
class Servo – 3 线伺服电机驱动
class SPI – 主 SPI 驱动
class Switch – 按键对象
class Timer – 内部定时器
class TimerChannel — 定时器通道控制
class UART – 串口通信
class USB_VCP – USB 虚拟串口