This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Z-Stack在SystemReset()函数之后串口无法使用,怎么解决这个问题?

Other Parts Discussed in Thread: Z-STACK

RT,我用的Z-Stack版本是2.5.1a,现在的应用场景是从串口读出数据然后串口要返回对应的字符串,现在别的情况下正常,但是跑过了SystemReset()函数之后,就没有返回信息了,但是用仿真器Reset一下又能输出正常值了,请问这个问题应该如何解决?还有就是在IAREW 6.0里面,跑过了SystemReset()函数之后,暂停都是停在这个函数上,原来的断点都不能用了,这个有什么解决的办法吗?

还有一个问题:SystemReset()用的是看门狗重启,函数描述是说从函数最开始的地方重新开始,这个与用仿真器Reset有什么区别呢?

  • Zstack的重启一般分为以下几种:

    1)SystemReset

    这种重启的机制是关闭中断并死循环,然后WatchDog超时,从而导致的重启即“硬重启”。

    2)SystemResetSoft

    这种重启将PC指针重置为0,也就是上电时代码启动的位置,即“软重启”。

    3)ZDO_DEVICE_RESET

    除了函数调用式的重启之外,还有消息式的重启。消息处理最终调用SystemResetSoft实现重启。

  • 我用的是Z-Stack 2.5.1a,在这个版本里面似乎没有SystemResetSoft?ZDO_DEVICE_RESET调用的也是SystemReset。

    还有就是SystemReset跟拉低RST引脚电平重启有啥区别?

    对了,这个版本的Z-Stack里面有个zb_SystemReset,这又与前面几个有什么区别??

    还有就是我的问题(SystemReset之后串口无法使用,而且IAR的断点也用不了,暂停就会停在SystemReset上)应该如何解决??

  • 您好,感谢你的回答,解决了我遇到的问题,但是我还想请问下“硬重启”和“软重启”有什么区别呢