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

本文关键字:获取 输入 RS-232 串行端口 | 更新日期: 2023-09-27 18:26:08

im正在编写一个从串行端口读取输入的程序。它确实收到了一些东西,但它毫无理由地断线了。

正确的输入

这个右输入应该是

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,因为如果没有,如果串行端口不打开,程序就会崩溃!

Im正在用Serial(); 初始化另一个空位上的串行

如何获得正确的输入?

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

在else子句中,不应将"''n"附加到this.richTextBox1。这是一个新行的特殊字符。如果您想要正确的输入,需要类似this.richTextBox1.AppendText(dataIn + "..."); 的东西