esp — ESP8266 和 ESP32 相关功能

esp模块包含与 ESP8266 和 ESP32 模块相关的特定功能。某些功能仅在这些端口中的一个或另一个上可用。

职能

esp.sleep_type([sleep_type])

注意:仅 ESP8266

获取或设置睡眠类型。

如果提供了sleep_type参数,则将睡眠类型设置为其值。如果不带参数调用该函数,则返回当前睡眠类型。

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

  • SLEEP_NONE – 启用所有功能,

  • SLEEP_MODEM – 调制解调器睡眠,关闭 WiFi 调制解调器电路。

  • SLEEP_LIGHT – 轻度睡眠,关闭 WiFi 调制解调器电路并定期暂停处理器。

系统在可能的情况下自动进入设置的睡眠模式。

esp.deepsleep(time_us=0, /)

注意:仅 ESP8266 - machine.deepsleep()在 ESP32 上使用

进入深度睡眠。

整个模块掉电,除了RTC时钟电路,如果16脚接reset引脚,可以在指定时间后重启模块。否则模块将休眠直到手动复位。

esp.flash_id()

注意: 仅 ESP8266

读取闪存的设备 ID。

esp.flash_size()

读取闪存的总大小。

esp.flash_user_start()

读取用户闪存空间开始处的内存偏移量。

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)

注意: 仅 ESP8266

设置本地代码在编译后放置执行的位置。当 @micropython.native, @micropython.viper@micropython.asm_xtensa装饰器应用于函数时会发出本机代码。ESP8266 必须从 iRAM 或闪存的低 1MByte(内存映射)执行代码,该函数控制位置。

如果start和length都是,None 则本地代码位置设置为 iRAM1 区域末尾未使用的内存部分。这个未使用部分的大小取决于固件,通常很小(大约 500 字节),足以存储一些非常小的函数。使用这个 iRAM1 区域的优点是它不会因写入而磨损。

如果start和length都不是,None那么它们应该是整数。 start应指定应存储本机代码的闪存开头的字节偏移量。 length指定从一开始就可以使用多少字节的闪存来存储本机代码。 start和length 应该是扇区大小的倍数(4096 字节)。在写入之前,闪存将被自动擦除,因此请确保使用未以其他方式使用的闪存区域,例如固件或文件系统。

使用 flash 存储原生代码时,start+length必须小于等于 1MByte。请注意,如果重复擦除(和写入),闪存可能会磨损,因此请谨慎使用此功能。特别是,每次启动(包括从深度睡眠中唤醒)时,本机代码都需要重新编译并重写为闪存。

在上述两种情况下,使用 iRAM1 或闪存,如果指定区域中没有剩余空间,则在函数上使用本机装饰器将导致MemoryError在编译该函数期间引发异常。