我使用了光耦进行隔离,采用的是MAX485芯片,其使能收发端连在一起用PC817光耦,数据线使用6N137光耦隔离。初始化后、空闲时485芯片是处于接收状态,且接收数据均完好无差错。但要发数据时,我切换了使能脚,并进行了延时处理,依次调整到延时10ms才(9600bps)有时发送成功部分数据,发送正确的数据流中后面两字节常被丢失??而不正确的数据流则看不出什么规律,依此我判断是否CPU(ATMEGA128)串口发送结束后过早把光耦切断而导致数据丢失?所以我对CPU串口发送结束又相应延时处理调试,但没效果,相反更糟……我真懵了,请大伙帮在下指点!谢谢!!
顺便说下,我调试设置成仅仅发送而不切换成接收,发送出去的数据流是正确的。 |