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
在编译该函数期间引发异常。