当前位置:编程学习 > C#/ASP.NET >>

串口通讯中查找某个串口的问题

for (int i = 0; i < 255; i++)
                {
                  sp2 = new System.IO.Ports.SerialPort();
                    sp2.BaudRate = 19200;
                    sp2.PortName = "COM" + i.ToString();
                    try
                    {
                        sp2.Open();  
                        sp2.Write("CO_READ_SMS");
                        T.Elapsed += new System.Timers.ElapsedEventHandler(timer4_Tick);

                        T.AutoReset = true;
                        T.Start();
                        Thread.Sleep(6000);
                        T.Enabled = false;
                        if (GetPhone == 2)
                        {
                            comboBox1.Text = "";
                            comboBox1.Text = "COM" + i.ToString();
                            sp2.Close();
                        
                            s = i;
                      
                        }
                        else if (GetPhone == 5)
                        {
                            sp2.Close();
                       
                        }
                
                        sp2.DiscardOutBuffer();
                        sp2.DiscardInBuffer();
                        sp2.Dispose();
                        
                    }
                    catch
                    {
                        continue;
                    }
                }
当第一次执行到“     sp2.Write("CO_READ_SMS");”时,没问题,第二次执行到这里时,就突然中断了,程序也没任何提示,是咋回事啊?
问题补充:
好像偶尔能正常执行,但大多数时候都会出现问题 Winform 串口通信 通讯 SerialPort --------------------编程问答-------------------- 是不是频繁Open和Close导致的,你把Open和Close放在循环外试试 --------------------编程问答-------------------- catch
 {
    continue;
 }

会不会是你从第二次开始就一直有异常,于是直接循环完结束程序了。
sp2.PortName = "COM" + i.ToString();
你确定你的电脑有那么多端口,255个哎,一旦某个端口不存在,就会引发异常,但是你在catch里又没有进行错误提示,于是每次异常就直接进入下一次循环,继续出错继续下一次,一直到最后。
把异常信息显示出来看看
catch(Exception ex)
{
  MessageBox.Show(ex.Message);
  continue;
}

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,