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

用C#不能从串口读出数据或读出的数据是写入的命令?

我用vs2005的c#写了一个SerialPort类应用的代码,但是从串行端口读出的数据是我写入的命令,而不是期望的写入“at”,返回“ok”,经理让我
先关闭指令回显,即先发送“at E0”命令,然后再发送“at”,但是这样做了以后读数据的时候程序就死在那个地方了,谁能说说怎么回事啊?帮我这个忙!!!

private void ConnectPortButton_Click(object sender, EventArgs e)
        {
            try
            {
                sp = new SerialPort("COM1");
                sp.ReadTimeout = 10000;
                sp.Open();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void SendButton_Click(object sender, EventArgs e)
        {
            try
            {
                sp.Write(textBox1.Text);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void ReceiveButton_Click(object sender, EventArgs e)
        {
            try
            {
                string text=null;
                char[] buffer = new char[10];
                sp.Read(buffer,0,6);---程序执行到这里就停了,卡住了
                for (int i = 0; i < buffer.Length; i++)
                {
                    text += buffer[i];
                }

                textBox2.Text = text;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        } --------------------编程问答-------------------- 顶一下!!我从端口读出的数据怎么是我写入的命令啊?谁能回答啊? --------------------编程问答-------------------- 我只想说...楼主相当的NX.... --------------------编程问答-------------------- SerialPort的Read方法是从 SerialPort 输入缓冲区中读取。
明白了吧
应该从SerialPort的DataReceived 事件中获取吧
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,