machine
— 硬件相关的函数¶
模块包含与硬件相关的特定函数。
请使用 pyb
模块函数/方法来控制您的OpenMV Cam。 machine
模块是为理解为其他MicroPython板编写的其他MicroPython代码。
复位相关的函数¶
- machine.reset()¶
重置设备,其方式与按下外部RESET按钮类似。
- machine.soft_reset()¶
执行解释器的软重置,删除所有 Python 对象并重置 Python 堆。 它试图保留用户连接到 MicroPython REPL 的方法(例如串行、USB、Wifi)。
- machine.bootloader([value])¶
重置设备并进入其引导加载程序。这通常用于将设备置于可以使用新固件对其进行编程的状态。
一些端口支持传入一个可选的 value 参数,该参数可以控制进入哪个引导加载程序、传递给它的内容或其他内容。
中断相关的函数¶
- machine.disable_irq()¶
禁用中断请求。返回先前的IRQ状态:
False
/True
分别对应禁用/启用IRQ。这个返回值可被传递,以使irq将IRQ恢复到初始状态。
- machine.enable_irq(state)¶
启用中断请求。 若
state
为True``(默认值),则启用IRQ。 若 ``state
为False
,则禁用IRQ。该函数最常见用途为使disable_irq
返回的值退出关键部分。
电源相关的函数¶
- machine.freq([hz])¶
以赫兹为单位返回 CPU 频率。
在某些端口上,这也可用于通过传入 hz 来设置 CPU 频率。
- machine.idle()¶
把时钟拨到中央处理器上,有助于在短时间或长时间内减少电力消耗。一旦触发任何中断,外围设备继续工作和执行恢复(在许多端口上,这包括按毫秒级定时间隔进行的系统定时器中断)。
- machine.sleep()¶
备注
不建议使用此函数,而应使用不带参数的
lightsleep()
。
- machine.lightsleep([time_ms])¶
- machine.deepsleep([time_ms])¶
停止执行以尝试进入低功耗状态。
如果指定了 time_ms ,则这将是休眠将持续的最长时间(以毫秒为单位)。否则休眠就会无限期地持续下去。
不管有没有超时,如果有需要处理的事件,可以随时恢复执行。 此类事件或唤醒源应在休眠之前进行配置,如
Pin
更改或RTC
超时timeout。轻度休眠和深度休眠的精确行为和节能能力高度依赖于基础硬件,但是它们的一般特性是:
轻度休眠有完整的RAM和状态保持。唤醒后,将从所有请求睡眠的地方恢复执行,所有子系统都可以运行。
深度休眠可能不会保留RAM或系统的任何其他状态(例如外围设备或网络接口)。 唤醒后,从主脚本main中恢复执行,类似于硬复位或上电复位。
reset_cause()
函数将返回machine.DEEPSLEEP
。 这可以用来区分深度休眠唤醒和其他重置。
其他功能¶
- machine.unique_id()¶
返回一个具有板子/SoC唯一标识符的字节字符串。若基础硬件允许,板子/ SOC的实例各个不同。长度根据硬件不同而不同(若您想要一个较短的ID,请使用具有完整值的子字符串)。在一些MicroPython端口中,ID与网络MAC地址相对应。
- machine.time_pulse_us(pin, pulse_level, timeout_us=1000000, /)¶
在给定引脚上为脉冲计时,并返回以微秒计的脉冲持续时长。为低脉冲计时时,pulse_level参数应为0;为高脉冲计时时,该参数应为1。
若引脚的当前输入值与pulse_level不同,该函数首先(*)需等待,直至引脚输入与pulse_level相等;然后为引脚与pulse_level相等的时段计时。若引脚已与pulse_level相等,则计时立即开始。
若有正在等待在上方标记有(*)情况的超时,则函数将返回-2,若在上方标记有(**)的主度量中有超时,则函数返回-1。这两种情况中的超时相同,且由timeout_us给定(以微秒计)。
- machine.rng()¶
返回一个 24 位软件生成的随机数。
Availability: WiPy. 可用于:WiPy。