咸鱼Micropython—pyb相关的函数

咸鱼Micropython— pyb相关的函数


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 虚拟串口

发布了166 篇原创文章 · 获赞 22 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_45020839/article/details/102389065
今日推荐