ESP8266学习笔记7:保存和读取自定义参数

2020-04-17 14:36:35 浏览数 (1)

我整理了从2015年至今关于ESP8266的学习笔记,梳理出来了开发环境、基础功能、进阶学习三大部分,方便自己和他人。可点此查看,欢迎交流。

前言

这几天正在使用ESP8266接入机智云,需要保存一些自定义的参数。在笔记6中,做了AP信息的保存,但它是借助特定的API保存特定的AP信息。而自定义的参数还需要我们自己处理,所有的智能硬件都会涉及这种情况,今天把这块也梳理下。

本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/

编程思路

ESP的IOT_DEMO是让ESP连接乐鑫自己的云平台,其中必然涉及以下自定义参数的保存,这就是很好的例子。

1.自定义参数的结构体:

代码语言:javascript复制
struct esp_platform_saved_param esp_param;

2.SPI FLASH中的保存位置

代码语言:javascript复制
/* NOTICE---this is for 512KB spi flash.
 * you can change to other sector if you use other size spi flash. */
#define ESP_PARAM_START_SEC		0x3D

3.初始化,载入自定义参数:

代码语言:javascript复制
void ICACHE_FLASH_ATTR
user_esp_platform_init(void)
{
	... 
	system_param_load(ESP_PARAM_START_SEC, 0, &esp_param, sizeof(esp_param));
	...
}

4.修改自定义参数,这是一个设置token的例子:

代码语言:javascript复制
void ICACHE_FLASH_ATTR
user_esp_platform_set_token(uint8_t *token)
{
    if (token == NULL) {
        return;
    }

    esp_param.activeflag = 0;
    os_memcpy(esp_param.token, token, os_strlen(token));

    system_param_save_with_protect(ESP_PARAM_START_SEC, &esp_param, sizeof(esp_param));
}

总结

这个内容比较简单,代码我就不贴了。

唯一注意的是FLASH的位置,如果用的是1M以上的FLASH,那记得参考下这帖子How to use 1024 KB flash - 如何使用1024KB 及以上 flash。

先这样吧。


0 人点赞