TI中文支持网
TI专业的中文技术问题搜集分享网站

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

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

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

Susan Yang:

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

1)SystemReset

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

2)SystemResetSoft

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

3)ZDO_DEVICE_RESET

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

Zian Yu:

回复 Susan Yang:

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

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

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

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

user6155023:

回复 Susan Yang:

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

赞(0)
未经允许不得转载:TI中文支持网 » Z-Stack在SystemReset()函数之后串口无法使用,怎么解决这个问题?
分享到: 更多 (0)