ESP8266 SDK开发之数据读写

程序开发难免涉及到数据读写,最近搞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));


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

扫描二维码关注公众号,回复: 3169939 查看本文章
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,共同交流学习~~~~











猜你喜欢

转载自blog.csdn.net/jackhuang2015/article/details/53770853