C# 如何将串行端口输入数据打印到标签

C# 如何将串行端口输入数据打印到标签,c#,C#,这是我的密码。 通过串口和手机进行通信。 这里,im将AT命令(AT+CLIP=1此命令用于获取incomming调用的CLI)发送到serialport。然后我读取串行端口的数据。我的问题是如何在标签中打印读取的数据。如果只想显示返回的结果,可以执行以下操作: label.Text=sp.ReadExisting() 在没有调试器的情况下运行此代码时,BytesToRead将为0。串口设备发送响应需要时间。这应该能解决你的问题: private void cliButton_Click

这是我的密码。 通过串口和手机进行通信。
这里,im将AT命令(AT+CLIP=1此命令用于获取incomming调用的CLI)发送到serialport。然后我读取串行端口的数据。我的问题是如何在标签中打印读取的数据。

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


label.Text=sp.ReadExisting()

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

    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);


    }

ReadLine()会一直读取,直到在响应中检测到SerialPort.NewLine。

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

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