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

前言

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

转载请注明:http://blog.csdn.net/sadshen

编程思路

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

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

struct esp_platform_saved_param esp_param;

2.SPI FLASH中的保存位置

/* 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.初始化,载入自定义参数:

void ICACHE_FLASH_ATTR
user_esp_platform_init(void)
{
    ...
    system_param_load(ESP_PARAM_START_SEC, 0, &esp_param, sizeof(esp_param));
    ...
}

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

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

先这样吧。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-18 18:47:02

ESP8266学习笔记7:保存和读取自定义参数的相关文章

OpenCV(C++接口)学习笔记1-图像的读取、显示、保存

OpenCV在2.0版本之后添加了C++接口函数,之前学习的都是C语言的接口函数,现在OpenCV已经发展到2.4.9版本了,所以决定学习C++接口函数,跟上节奏. 1.创建图像 cv::Mat image; 采用类cv::Mat来定义图像变量或矩阵变量. 当然你也可以指定图像的大小: cv::Mat img(240,320,CV_8U,cv::Scalar(100)); 参数CV_8U中的U代表unsigned,而S代表signed.对于三通道彩色图像可以用CV_8UC3.你也可以声明16或3

quick-cocos2d-x学习笔记【6】——制作自定义效果按钮菜单

前面提到的是基本的菜单使用,还是很容易的,不过我们在商业产品中,经常看到的按钮都是非常好看,不光光是图片做得精美,而且动画效果也很棒.Candy Crash都玩过吧,看它们那个按钮,真的像果冻一样,效果确实很赞,所以我们也来做个,当然不是它那个效果,而且点击之后有一个抖动的效果.像这样, 好了,开始做个吧,我这个也是搬了一下coinflip中的按钮代码,算是学习一下. 创建一个views文件夹,里面创建一个MyButton.lua文件,这个就是我们的自定义按钮类了.实现的原理比较简单,在ui.n

C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件

阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: 1 /*读取txt文件到二维数组*/ 2 #include <iostream> 3 #include <fstream> 4 #include <vector> 5 #include <string> 6 7 using namespace std; 8 9 typedef vector< vector<int> > D2array; //二维数组 10 typed

OpenCV2学习笔记:图像的读取与显示

1. 图像读取:imread() Mat imread(const string& ?lename, int ?ags=1 ) 参数介绍: filename: 待加载的文件名称. flags: 此标志用来指定被加载图像的颜色类型(color type).这个标志的取值可以有: -- CV_LOAD_IMAGE_ANYDEPTH : 如果设置这个标志的话,如果图像为16位或32位深度的图像,则返回对应深度的图像:否则,将图像转换为8位深度图像再返回. -- CV_LOAD_IMAGE_COLOR

Linux学习笔记——例说makefile 增加自定义共享库

0.前言 从学习C语言开始就慢慢开始接触makefile,查阅了很多的makefile的资料但总感觉没有真正掌握makefile,如果自己动手写一个makefile总觉得非常吃力.所以特意借助博客总结makefile的相关知识,通过例子说明makefile的具体用法. 例说makefile大致分为4个部分 1.只有单个C文件 2.含有多个C文件 3.需要包括头文件路径 4.增加宏定义 5.增加系统共享库 6.增加自定义共享库 7.一个实际的例子 [代码仓库]--makefile-example

Dynamic CRM 2013学习笔记(三十七)自定义审批流7 - 初始化(整套审批流下载、安装)

  前面介绍了自定义审批流的配置.使用,这篇介绍下如何进行初始化.   一. 下载   从下面的地址下载整个审批流: http://yunpan.cn/cJR65k2Grj3Ss  访问密码 8065 下载完后,一共有三块内容:   二.初始化 1. Web 把CRMWFExtends文件夹copy到ISV目录下 默认的目录应该是C:\Program Files\Microsoft Dynamics CRM\CRMWeb\ISV   2. 解决方案 导入solution:ApprovalWork

Cocos2d-x 3.1.1 学习笔记(二)创建自定义项目

一.通过命令创建项目 前面搭建好环境后,怎样创建自己的cocos2d-x项目呢? 先来看看cocos2dx 3.1的目录吧 这就是 cocos2dx 3.1的目录, 3.1版本的创建跟以前的不同了(好吧,又变了),我们先把 download-deps.py 和 setup.py 执行一遍,按住shift+鼠标右键 输入cocos命令 回车 这里会看到一些命令的声明,这里我只说下 创建新的项目,输入命令cocos new 这里 -p      是包名 -l       是文件格式 有cpp.lua

Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮

上次介绍了 Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 现在开始介绍如何配置审批流,首先在form上添加三个按钮,Submit, Agree, Reject:   1. submit 按钮 $webresource:crm_PNG_approvaltemplate_16 $webresource:crm_PNG_approvaltemplate_32   SubmitBill $webresource:neu_wf_utility     2. Agree 按钮

学习笔记_springmvc注解形式的开发参数接收

springmvc基于注解的开发 注解第一个例子 1. 创建web项目 springmvc-2 2. 在springmvc的配置文件中指定注解驱动,配置扫描器 <!-- sprimgmvc 注解驱动 --> <!-- <mvc:annotation-driven /> --> <!-- springmvc的扫描器,一旦有扫描器的定义上面的mvc:annotation.. 就不需要了,扫描器已经有哪里注解驱动的功能 --> <context:compon