SerialPort实例化对象,无法打开九针串口连接的设备,该设备使用的红外通讯。端口号为com1。
其他的com口,传输都是没有问题的。
求高人指点!!!!跪谢

解决方案 »

  1.   

    也许你设备发过来的端口号不是COM1
      

  2.   

    我是用SerialPort.GetPortNames()方法获取的所有com口,其他的端口通讯都没有问题,只有这个com1不行。我自己写的串口通讯对com1而言也是可以的,但就是这个serialPort的实例化对象不行。我也奇怪了。
      

  3.   


    我是用SerialPort.GetPortNames()方法获取的所有com口,其他的端口通讯都没有问题,只有这个com1不行。我自己写的串口通讯对com1而言也是可以的,但就是这个serialPort的实例化对象不行。我也奇怪了。
      

  4.   

    你可以用串口调试工具看看,端口设置为com1试试,能不能接收到数据
      

  5.   


    /// <summary>
            /// 初始化串口
            /// </summary>
            private int InitializeCommPort()
            {
                SPSend.PortName = "COM1";
                SPSend.BaudRate = 9600;
                SPSend.DataBits = 8;
                SPSend.ReceivedBytesThreshold = 1;
                //SPSend.ReadTimeout = 800;
                SPSend.ReadTimeout = 4000;
                SPSend.WriteTimeout = 3000;
                glog.AddLog(SPSend.PortName, WF.Common.FileLog.DataLogLevel.dlFull);
                            
                try
                {
                    //仅打开一次
                    if (SPSend.IsOpen)
                    {
                        return 1;
                    }
                    else
                    {
                        try
                        {
                            SPSend.Open();
                        }
                        catch (System.IO.IOException ex)
                        {
                            glog.AddLog(ex.Message, WF.Common.FileLog.DataLogLevel.dlFull);                    }
                        catch (System.ArgumentException ex)
                        {
                            glog.AddLog(ex.Message, WF.Common.FileLog.DataLogLevel.dlFull);                    }
                        catch (System.UnauthorizedAccessException ex)
                        {
                            glog.AddLog(ex.Message, WF.Common.FileLog.DataLogLevel.dlFull);                    }
                        catch (System.InvalidOperationException ex)
                        {
                            glog.AddLog(ex.Message, WF.Common.FileLog.DataLogLevel.dlFull);                    }
                        if (SPSend.IsOpen)
                        {
                            glog.AddLog(SPSend.PortName, WF.Common.FileLog.DataLogLevel.dlFull);
                            return 0;
                        }
                        else
                        {
                            return 2;
                        }
                    }
                }
                catch (System.Exception ex)
                {
                    //MessageBox.Show(SPSend.PortName+"无法打开!");
                    return 2;
                }
                return -1;        }