我正在编写一个从串口读取输入的程序。它确实收到了一些东西,但它没有理由破坏了它。
正确的输入
这个权利应该是
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();
我如何获得正确的输入?
答案 0 :(得分:0)
在你的else子句中,你不应该附加" \ n"到this.richTextBox1。这是新线的特殊字符。如果您想要正确的输入,需要this.richTextBox1.AppendText(dataIn + "...");