用SerialPort写的串口,请高手指点。

解决方案 »

  1.   

    SerialPort的静态方法GetPortNames()获取当前计算机的串行端口名称数组,如果没有则没有可用串口
      

  2.   

    我没可能写一个你项目中用的,但是我可以给你个例子。你看懂就可以弄到你项目中用了。是否有点语法错误我不敢保证,因为没串口可以调试。家里也没虚拟串口的软件。
    例子如下:
    private static void TestSerialOnLine()
    {
        //定义个串口对象
        SerialPort comm = new SerialPort();
        //定义个定时器来监视
        System.Threading.Timer t = new System.Threading.Timer(delegate
            {
                //如果倒了定时器时间,说明没有数据了,就说明掉线或是被拔掉了。
                MessageBox.Show("Serial device off line.");
            },
            null,
            2000,//心跳检测时间,如果到这个时间没收到过数据,则认为设备被拔掉了。
            2000);//2秒后开始第一次执行此方法
        comm.DataReceived += delegate
        {
            //任何情况,只要触发这个事件,就说明来数据了,重置定时器。
            t.Change(2000, 2000);
        };
    }