ESP8266 SDK开发之数据读写

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/jackhuang2015/article/details/53770853

程序开发难免涉及到数据读写,最近搞ESP8266模块的网络配置和连接部分,涉及到模块重启需要恢复部分数据的问题,网上查了部分资料,结合官网的的案例代码段将相关经验给大家简单总结分享一下。

数据的读写会用到bool system_param_load (uint16 start_sec,uint16 offset,void *param,uint16 len)及bool system_param_save_with_protect (uint16 start_sec,void *param,uint16 len)两个函数,具体函数说明可查看API,官方SDK开发包里面的IoT_Demo例子user_esp_platform.c里面用到了这两个方法,这里只简单介绍这两个方法如何使用。比如我现在需要保存的数据是一个服务器IP地址(server_ip)及服务器的端口(server_port)数据,首先先定义一个类型server_info,定义如下:

struct server_info {char server_ip[4];int server_port;} ser_info;

根据文档说明,还需要一个地址,这个地址文档里面也明确说明了使用0x3D,那我们就来定义一个地址

#define ESP_PARAM_START_SEC 0x3D

现在来试试保存我们的服务器地址和端口数据,假设IP地址是char ser_ip[4]={192,168,11,11},端口为9999

os_memcpy(ser_info.server_ip, ser_ip, os_strlen(ser_ip));
ser_info.server_port = 9999;
system_param_save_with_protect(ESP_PARAM_START_SEC, &ser_info, sizeof(ser_info));


那么如何把数据读取出来呢?可以使用下面的代码:

system_param_load(ESP_PARAM_START_SEC, 0, &ser_info, sizeof(ser_info));
os_memcpy(ser_ip, ser_info.esp_tcp_server_ip, os_strlen(ser_info.esp_tcp_server_ip));
server_port = ser_info.server_port;

好了,就是这么简单,希望对大家有帮助。


欢迎有兴趣的朋友加QQ群:254267969,共同交流学习~~~~











展开阅读全文

没有更多推荐了,返回首页