请教,MESH组网中Flash存储应用

我想实现一下功能:在开启FLASH存储的条件下,中心节点(配网者)能够存储入网设备的地址,同时入网的普通节点也能够保存自身的地址和密钥等信息;中心节点断电、再上电后,通过读取FLASH的信息,仍可以和网络中的节点通信,同理,普通节点断电、又上电后仍能够接入MESH网络。
目前遇到的问题是:开启Flash功能后,中心节点:
image.png

无法与普通节点通信

而普通节点:image.png

也无法连接的中心节点

所以,mesh协议栈底层并不会自动写入这些信息,需要用户主动地向dataflash中写入信息么,但又害怕写入过程中,擦除了有用的信息,希望能够得到技术支持,感激不尽!

您好,mesh例程里是有这些功能的,app_mesh_config.h中配置CONFIG_BLE_MESH_SETTINGS宏为1即可开启,默认就是启用的。您注意打印信息,有“restore form flash”就是已经从falsh中恢复网络信息了。网络信息会保存在dataflash中,您可以通过ISP工具进boot,查看dataflash中的数据。

如果说上电后无法恢复通信,检查一下有没有手动擦写dataflash中的信息,可能修改掉了网络信息。另外注意,如果中心节点重新烧录过代码且清空了dataflash,会丢失上一网络的网络信息,上一网络中的节点由于已经配好网,不会再广播配网信标,也就不会被新烧录代码的中心节点纳入网络,可能会导致无法通信。


只有登录才能回复,可以选择微信账号登录