无法读取serial port里的数据,该怎么解决

无法读取serial port里的数据
 private void Form2_Load(object sender, EventArgs e)
        {
            SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
            serialPort.Handshake = Handshake.None;
            serialPort.WriteTimeout = 500;
            serialPort.ReadTimeout = 500;
          //  serialPort.PortName = SerialPort.GetPortNames()[0];
            serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
            serialPort.Open();
           
        }
        private static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort sp = (SerialPort)sender;
            string indata = sp.ReadExisting();
            Console.WriteLine("Data Received:");
            Console.Write(indata);
        }


为什么就是读取不到DataReceivedHandler里的数据?
------解决方案--------------------
肯定与什么变量作用域没关系,人家在里面已经对sender进行转换了。请检查三个问题:
1.为什么private static void DataReceivedHandler有 static,去掉看看。
2.Console.WriteLine("Data Received:");
            Console.Write(indata);
是不是一闪就过了,你根本没看到,应该加一句Consolse.ReadKey(),停留一下控制台。
3.确认COM1口真的有数据传过来,可用超级终端或串口调试助手先看看。
4.ReceivedBytesThreshold影响事件执行,看看设小点行不行