machine —与硬件相关的功能

machine 模块包含与特定板上硬件相关的特定功能。该模块中的大多数功能允许实现对系统硬件块(如 CPU、定时器、总线等)的直接和不受限制的访问和控制。使用不当,这可能会导致电路板故障、锁定、崩溃,在极端情况下还会导致硬件损坏。

A note of callbacks used by functions and class methods of machine模块的函数和类方法使用的回调的注意事项:所有这些回调都应被视为在中断上下文中执行。对于 ID >= 0 的物理设备和具有负 ID(如 -1)的“虚拟”设备(这些“虚拟”设备仍然是真实硬件和真实硬件中断之上的薄垫片)都是如此。请参阅编写中断处理程序

杂项功能

machine.unique_id()

返回具有板/SoC 唯一标识符的字节字符串。如果底层硬件允许,它会因板/SoC 实例而异。长度因硬件而异(因此,如果您希望使用短 ID,请使用完整值的子字符串)。在某些 MicroPython 端口中,ID 对应于网络 MAC 地址。

machine.time_pulse_us(pin, pulse_level, timeout_us=1000000, /)

在给定的pin上计时脉冲,并以微秒为单位返回脉冲的持续时间。所述pulse_level参数应该是0到时间低脉冲或1到时刻高脉冲。

如果引脚的当前输入值与pulse_level不同,函数首先 (*) 等待直到引脚输入变得等于pulse_level,然后 (**) 乘以引脚等于pulse_level的持续时间。如果引脚已经等于pulse_level,则计时立即开始。

如果在上面标记 (*) 的条件等待超时,则该函数将返回 -2,如果在主要测量期间超时,则返回 -1,标记为 (**)。两种情况的超时时间相同,由timeout_us给出(以微秒为单位)。

machine.rng()

返回一个 24 位软件生成的随机数。

可用性:WiPy。

常数

machine.IDLE
machine.SLEEP
machine.DEEPSLEEP

IRQ 唤醒值。

machine.PWRON_RESET
machine.HARD_RESET
machine.WDT_RESET
machine.DEEPSLEEP_RESET
machine.SOFT_RESET

重置原因。

machine.WLAN_WAKE
machine.PIN_WAKE
machine.RTC_WAKE

起床原因。