各位大哥大姐,MSComm 串口通讯中断怎么自动让它重新连上,如何判断通讯中断。急啊!谢谢各位了

解决方案 »

  1.   

    通讯中断是什么意思?串口关闭了?
    如果串口是否关闭就直接判断MSComm1.PortOpen是否为True.
    可以这样If Not MSComm1.PortOpen Then
        MSComm1.PortOpen=True
    End If   如果你的发送数据和接收都很有规律,你可以定义一个布尔类型的变量,在接收到数据时启用一个Timer(时间自己定义),并将该布尔变量值变为True,在Timer里将该标志位变为False,并禁用Timer,这样在一定时间内没有接收到数据,Timer时间到,变量为False,就可得出串口中断了.(Timer的时间要大于两次数据接收的最大间隔).
    如果没有规律那也就不好说了,但你可以自己定义一个字符或字节数据,定时的发送,在接收端按上述方法做处理,时刻通讯是否在线,不在线则作出离线指示或做相应处理.
      

  2.   

    怎么会中断呢?没遇到过,是什么样的通讯过程?pc之间,还是有其他硬件?pc的串口一般不会断吧
      

  3.   

    我遇到的是通信假死,程序的其它窗体可工作.
    解方法,通信部分专放一个窗体,通过公共变量传递接收数据.
    在其它窗体主动定时UNLOAD 通信窗体,然后再次加载通信窗体(通过对通信窗体的某属性或该窗体的某控件的属性赋值),来避免假死.