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

串口问题,帮帮忙啊!

刚开始接触串口,用串口助手发现数据可以发到虚拟的串口上了,但自己写的读取的,只要一读就挂了。
写:
        private void button1_Click(object sender, EventArgs e)
        {
            SerialPort SerialPort1 = new SerialPort();
            SerialPort1.PortName = "COM1";
            //SerialPort1.BaudRate = 9600;
            //SerialPort1.DataBits = 8;
            //SerialPort1.Parity = Parity.None;
            //SerialPort1.StopBits = StopBits.One;
            SerialPort1.ReadTimeout = 1000;
            SerialPort1.Open();


            byte[] date = Encoding.Unicode.GetBytes(textBox1.Text);
            string str = Convert.ToBase64String(date);
            SerialPort1.WriteLine(str);


            MessageBox.Show("数据发送成功");
            SerialPort1.Close();

        }

读://如果在串口助手就能看到已经读出来了,但如果关掉串口助手通过这个按钮就会出问题!

        private void button2_Click(object sender, EventArgs e)
        {
            SerialPort SerialPort1 = new SerialPort();
            SerialPort1.PortName = "COM2";//虚拟的串口,            SerialPort1.ReadTimeout = 1000;
            SerialPort1.Open();
            if (SerialPort1.ReadLine() != "")//读到这一行就挂了,说操作已经超时了
            {
                byte[] date = Convert.FromBase64String(SerialPort1.ReadLine());
                textBox2.Text = Encoding.Unicode.GetString(date, 0, date.Length);
            }
            SerialPort1.Close();
            MessageBox.Show("数据接收成功");
        }

高手们帮帮忙啊!到底要怎么写啊!

--------------------编程问答-------------------- SerialPort1.Open();
看这个是否返回成功。你写代码的风格不好,这么重要的一个调用都不带判断是否成功的。 --------------------编程问答-------------------- 串口参数也没设置 就打开了,默认的设置估计是不行的.
最好自己加上 如 波特率 RTS 等设置.
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,