我整理了从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。
先这样吧。