先学点硬件知识吧按你的描述,你的上下位机应该是采用了RS-485半双工问答方式通讯的,那么在你的下位机没上电以前,由于保护嵌位二极管的存在,等于把通讯总线拉死了,也就是说这时候的差分检测器(主机端的 RS-232 <-> RS485 转换器上的双绞线输入口)将呈现不稳定的状态(RS-422/485 对总线的定义是:A-B≥200mV为逻辑“1”,B-A≥200mV为逻辑“0”,A-B=0事实上是一种临界状态),既然不稳定,判别电路(通常是SN75176或MAX1487等)将容易产生错误判别,逻辑输出会在“1”和“0”之间跳动,从而使串行口产生了错误的起始位,于是就有了错误的帧;解决很简单,只需要用两个电阻(约100K)分别把A线(也称D+)接正、B线(也称D-)接负(或“地”)即可。