Other Parts Discussed in Thread: Z-STACK,
你好,TI团队。
图片中的NWK Frame Counter,经过验证,可以使用SSP_ReadNwkActiveKey( nwkActiveKeyItems *items )这个函数来获取此值。
模块复位后,NWK Frame Counter就会清零。请问,程序中这个清零操作在哪?或者我可以给这个参数赋初值并写入到NV吗?
使用的SDK版本为 Z-Stack Mesh 1.0.0
您好
在CC2538上,确保nwk frame counter(网络帧计数器)在协调器复位后不会清零,并且能够在网络恢复后立即成功通信,你可以考虑将nwk frame counter的值保存到Flash中。以下是一个基本的步骤和思路,你可以根据你的具体应用场景进行调整:
首先,你需要在Flash中分配一个区域用于存储nwk frame counter的值。确保这个区域在复位后不会被擦除或覆盖。
你需要编写函数来读写Flash中的nwk frame counter值。CC2538通常使用内部的Flash存储器,你可以使用芯片厂商提供的库函数来操作Flash。
保存nwk frame counter:在协调器正常工作期间,定期或在关键事件(如发送一定数量的数据包后)时,将当前的nwk frame counter值写入Flash。
恢复nwk frame counter:在协调器启动时,从Flash读取nwk frame counter的值,并将其设置到相应的网络变量中。
确保在电源掉电或异常复位时,Flash中的数据能够被正确保存和恢复。你可能需要处理一些异常情况,比如Flash写入失败等。
在实际硬件上进行充分的测试,确保在复位和各种异常情况下,nwk frame counter都能正确恢复,并且网络通信能够正常进行。
通过上述步骤,你可以将nwk frame counter的值保存到Flash中,从而在协调器复位后保证网络通信的正常进行。