Z-Stack在SystemReset()函数之后串口无法使用,怎么解决这个问题?
时间:10-02
整理:3721RD
点击:
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上)应该如何解决?