ESP8266 与某个 AP 连接后,会将该 AP 的信道信息存储在 RTC memory 中。
- 当软件复位 ESP8266,或 ESP8266 从 Deep-sleep 模式中唤醒之后,ESP8266 会从 RTC memory 中读取 AP 的信道信息,并尝试连接该信道中的 AP。
- 但如果上电启动或硬件复位 ESP8266,RTC memory 会被清空。因此,ESP8266 会扫描所有的信道,这会占用一些时间。
用户上电启动或硬件复位 ESP8266 时,可通过以下方式存储 AP 的信道信息,以避免 ESP8266 重新扫描所有信道寻找上次连接的 AP。这将有助于减少 ESP8266 启动后的连接时间。
- 在 ESP8266 与 AP 连接后,调用函数 wifi_get_channel 来读取当前 AP 的信道信息,然后将该信息存储到 SPI Flash 中。在写入 AP 的信道信息之前,请确保该信道信息有效。
- ESP8266 上电或硬件复位时,用户固件将从 Flash 中读取之前存储的信道信息。通过调用函数 WRITE_PERI_REG(0x600011f4, 1 << 16 | channel) 将该 AP 的信道信息写入 RTC memory 中。之后便可以从 RTC memory 获取信道信息,加快 ESP8266 与 AP 的连接。
- 使能自动连接功能后,ESP8266 会从 RTC memory 中读取 AP 的信道信息,并尝试连接该信道中的 AP。
只有信道信息会被存储在 RTC memory 中。当调用函数 wifi_station_set_config 时,配置的其它信息(比如 SSID 和密码)已存储在 Flash 中。
注意:如果应用要求 ESP8266 频繁上电或硬件复位,建议客户使用片外 RTC memory 来备份信道信息。由于 Flash 内存的写入周期有限,不建议对 Flash 内存频繁地写入。