我自己编了一个上位机, 用usb2com和下位机通讯, 这个没有问题.
如果在串口打开的情况下, 把usb2com拔了, 这是可以从PC的硬件管理器看到这个com口没有了, 此时如果上位机软件不关闭, 再插上usb2com, 可以看到设备管理器里面闪了一下, 但该有的com号没有出现, 这时候上位机软件无法检测到com口存在. 上位机软件不关, 关串口, 拔出, 再插, 这是上位机软件可以检测.如果关了上位机软件, 再启动, 可定没有问题.我的问题是, 如果上位机不关,在串口打开的情况下, 拔出, 再插, 这时候能检测, 现在不知道如何下手, 那位高手指点一下, 在usb2com非法拔出后, 如何释放...
谢谢了

解决方案 »

  1.   

    检测通信超时,如果超时
    mscomm1.portopen=false 
      

  2.   

    单独做个EXE测试一下,看看楼上的办法是否能关闭串口并释放资源.直接用个按钮写入这个关闭的语句,拔掉后试试能不能关闭,将功能先测试一下再说.如果不行,那就比较麻烦了......先试试吧.
      

  3.   

    我的想法就是usb2com如果usb一样, 在程序没有退出, 插上, 拔下, 再插上都能检测到.
    上面说的关闭串口, 没有用, 应用程序未关闭的情况下, 即使usb2com器件再插上, 硬件管理器里面是看不到器件的, 如果打开出口, 会提示串口不存在.
      

  4.   

    最简单的处理办法是,要通信的时候open,通信完毕close,这样碰到的机会就会小的多