从串口(RS-232)获取输入

时间:2014-10-10 16:27:46

标签: c# winforms serial-port

我正在编写一个从串口读取输入的程序。它确实收到了一些东西,但它没有理由破坏了它。

正确的输入

这个权利应该是

Sending...Sending...Sending...Sending...Sending...

不改变线条。

实际输入

Sending...
Se
ndin
g...
S
endi
ng..
.
Send
ing.
..
Se
ndin
g...

代码

public void Serial ()
    {
        try
        {
            SerialPort serial = new SerialPort(this.comboBox1.Text);

            serial.BaudRate = 9600;
            serial.Parity = Parity.None;
            serial.StopBits = StopBits.One;
            serial.DataBits = 8;
            serial.Handshake = Handshake.None;

            serial.DataReceived += new SerialDataReceivedEventHandler(SerialDataReceivedHandler);

            serial.Open();
        }
        catch
        {

        }
    }

    public void SerialDataReceivedHandler(object sender, SerialDataReceivedEventArgs e) 
    {
        SerialPort sp = (SerialPort)sender;
        string dataIn = sp.ReadExisting();
        if (log_time == true) 
        {
            this.richTextBox1.AppendText(time + dataIn);
        }
        else
        {
            this.richTextBox1.AppendText(dataIn + "\n");
        }

    }

this.combobox1.Text工作正常,我正在使用try,因为如果不是,如果串口没有打开,程序会崩溃!

我使用Serial();

初始化其他空格上的序列号

我如何获得正确的输入?

1 个答案:

答案 0 :(得分:0)

在你的else子句中,你不应该附加" \ n"到this.richTextBox1。这是新线的特殊字符。如果您想要正确的输入,需要this.richTextBox1.AppendText(dataIn + "...");

之类的内容
相关问题