设计的串口在初始通讯时是正常的,运行1-2天后就无法通讯了。发送的数据幀是标准的RTU 8个字节。芯片用的是SP3485,不过因为布线偷懒逻辑电平没有改成3.3,还是5V。现在无法判断是硬件还是软件的问题。我自己的判断如下:1.数据帧不是很长,波特率误差在0.2% 应该不会造成这种问题。
2.软件初始化没有问题,在通讯中断的时候示波器上的D和R端还有数据波形,这个波形对不对搞不清。
3. SP3485逻辑端查看了手册后是支持最大6V的,所以我没有改,这个不清楚会不会造成这种问题。
4.我用STC的串口工具和modbus调试精灵在中断的时候都测试过,都没有应答,不是上位机软件的问题。
最终分析了一下,觉得最大的问题还是在SP3485上。可能是这个5V的逻辑电平造成SP3485不稳定了。
最后忘了一个重要的部分,就是重新上电后一切正常,现在想的有点迷糊,大神来帮忙捋一下,万分感谢!