打印

程序会使单片机停振吗?

[复制链接]
2281|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chencheng|  楼主 | 2011-9-22 20:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
4个单片机通过MAX485连接在总线上,1个主机3个从机。从机程序为收到给自己的数据然后转发,主机程序为依次发送给其他3个单片机数据。
加电后,第一次循环很正常。主机发送第一个数据后延时,从机1收到数据转发;主机发送第二个数据后延时,从机2收到数据转发;主机发送第三个数据后延时,从机3收到数据转发。一切都按照设计的时间及顺序进行(执行过程通过LED观察)。主机延时一段时间后又重复上述过程,但从机就出现问题了!有时第二轮循环中就有单片机死机(示波器观察晶振停振,没有时钟信号,看门狗也没用),有时经过两三轮后才会有死机。不管怎样,反正没几轮就肯定有2个从机死机,而没有死机的那个单片机则一直正常工作,接收自己的数据并转发。无数次试验,说不定是哪两个从机会死机。单片机也换过STC和芯唐,都一样。请大家指点,单片机为什么会停振?

相关帖子

沙发
老鱼探戈| | 2011-9-22 21:35 | 只看该作者
只要没有动到相关的控制寄存器一般都不会的

使用特权

评论回复
板凳
chunyang| | 2011-9-22 21:46 | 只看该作者
本振“停振”多半是楼主的测量方法有问题,而故障现象则是因为楼主的程序编制有误所致。

使用特权

评论回复
地板
chencheng|  楼主 | 2011-9-22 22:46 | 只看该作者
同样的方法能看到正常单片机的晶振波形,而看不到死机单片机波形。如果单片机没死,那么看门狗为什么不起作用?想不明白。

使用特权

评论回复
5
老鱼探戈| | 2011-9-22 22:53 | 只看该作者
看门狗为什么不起作用要问你自己了,开了吗?

使用特权

评论回复
6
chencheng|  楼主 | 2011-9-26 12:59 | 只看该作者
问题解决了。我分析原因是接收缓冲区溢出致使单片机进入掉电模式,故而停振。谢谢各位。

使用特权

评论回复
7
占领将军| | 2011-9-26 13:01 | 只看该作者
:lol

使用特权

评论回复
8
chencheng|  楼主 | 2011-9-26 13:13 | 只看该作者
谢谢2楼,我在2楼提示下,分析如何才会改变相关寄存器时,又得到别人关于缓冲区溢出提示,才想到了问题所在。并反复试验验证了原因所在。再次谢谢2楼。我不知道怎么给分,所以请原谅。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

116

帖子

1

粉丝