4个单片机通过MAX485连接在总线上,1个主机3个从机。从机程序为收到给自己的数据然后转发,主机程序为依次发送给其他3个单片机数据。
加电后,第一次循环很正常。主机发送第一个数据后延时,从机1收到数据转发;主机发送第二个数据后延时,从机2收到数据转发;主机发送第三个数据后延时,从机3收到数据转发。一切都按照设计的时间及顺序进行(执行过程通过LED观察)。主机延时一段时间后又重复上述过程,但从机就出现问题了!有时第二轮循环中就有单片机死机(示波器观察晶振停振,没有时钟信号,看门狗也没用),有时经过两三轮后才会有死机。不管怎样,反正没几轮就肯定有2个从机死机,而没有死机的那个单片机则一直正常工作,接收自己的数据并转发。无数次试验,说不定是哪两个从机会死机。单片机也换过STC和芯唐,都一样。请大家指点,单片机为什么会停振? |