esp — 与ESP32相关的函数

The esp module 模块包含与模块相关的特定函数。

函数

esp.sleep_type([sleep_type])

获取或设置睡眠类型。

若给定 sleep_type 参数,则将睡眠类型设置为其值。若调用函数未给定参数,则返回当前的睡眠类型。

可用的睡眠类型被定义为常量:

  • SLEEP_NONE – 所有函数启用
  • SLEEP_MODEM – 调制解调器睡眠,关闭WiFi调制解调器电路
  • SLEEP_LIGHT – 轻度睡眠,关闭WiFi调制解调器电路,并定期暂停处理器。

条件允许时,系统会自动进入设定的睡眠模式。

esp.deepsleep(time=0)

进入深度睡眠。

除RTC时钟电路外的整个模块断电。指定时间后,若引脚16与重置引脚相连接,RTC时钟电路可用于重启模块。 否则该模块将始终处于睡眠状态,直至手动重启。

esp.flash_id()

读取闪存的设备ID。

esp.flash_read(byte_offset, length_or_buffer)
esp.flash_write(byte_offset, bytes)
esp.flash_erase(sector_no)
esp.set_native_code_location(start, length)

Set the location that native code will be placed for execution after it is compiled. Native code is emitted when the @micropython.native, @micropython.viper and @micropython.asm_xtensa decorators are applied to a function. The ESP8266 must execute code from either iRAM or the lower 1MByte of flash (which is memory mapped), and this function controls the location.

If start and length are both None then the native code location is set to the unused portion of memory at the end of the iRAM1 region. The size of this unused portion depends on the firmware and is typically quite small (around 500 bytes), and is enough to store a few very small functions. The advantage of using this iRAM1 region is that it does not get worn out by writing to it.

If neither start nor length are None then they should be integers. start should specify the byte offset from the beginning of the flash at which native code should be stored. length specifies how many bytes of flash from start can be used to store native code. start and length should be multiples of the sector size (being 4096 bytes). The flash will be automatically erased before writing to it so be sure to use a region of flash that is not otherwise used, for example by the firmware or the filesystem.

When using the flash to store native code start+length must be less than or equal to 1MByte. Note that the flash can be worn out if repeated erasures (and writes) are made so use this feature sparingly. In particular, native code needs to be recompiled and rewritten to flash on each boot (including wake from deepsleep).

In both cases above, using iRAM1 or flash, if there is no more room left in the specified region then the use of a native decorator on a function will lead to MemoryError exception being raised during compilation of that function.