如何打印串口传入数据到标签

时间:2011-01-26 15:16:09

标签: c#

    private void cliButton_Click(object sender, EventArgs e)
    {
        sp = new SerialPort();
        sp.PortName = "COM14";
        sp.BaudRate = 19200;
        sp.Parity = Parity.None;
        sp.DataBits = 8;
        sp.StopBits = StopBits.One;
        sp.Handshake = Handshake.RequestToSend;
        sp.DtrEnable = true;
        sp.RtsEnable = true;

        sp.Open();

        if (!sp.IsOpen)
        {
            MessageBox.Show("Serial port is not opened");
            return;
        }
        sp.WriteLine("AT" + Environment.NewLine);
        sp.WriteLine("AT+CLIP=1" + Environment.NewLine);
        byte [] data= new byte [sp.BytesToRead];
        sp.Read(data, 0, data.Length);


    }

这是我的代码。 它用于通过串口与手机通信。 这里我发送AT命令(AT + CLIP = 1这个命令用来接受命令调用的CLI)到serialport。然后我读取串口数据。我的问题是我如何在标签中打印这个带引线的数据。

3 个答案:

答案 0 :(得分:1)

当您在没有调试器的情况下运行此代码时,BytesToRead将为0。串口设备发送响应需要一些时间。这应该解决你的问题:

label1.Text = sp.ReadLine();

ReadLine()继续读取,直到它在响应中检测到SerialPort.NewLine。

答案 1 :(得分:0)

如果您只想显示返回的结果,可以执行以下操作:

label.Text = sp.ReadExisting();

答案 2 :(得分:0)

如果要以空格分隔的十六进制格式显示端口输出,请使用以下命令:

_label.Text = string.Join(" ", data.Select(b => string.Format("{0:X2}", b)));