我编写了一个应用程序,将数据发送到 COM 端口并接收返回的数据。
发送效果很好,但接收效果不佳。多行和只读文本框中的新行字符不正确。
截屏:

我的接收代码是:
void serialPort_DataReceived(object s, SerialDataReceivedEventArgs e)
{
byte[] data = new byte[_serialPort.BytesToRead];
_serialPort.Read(data, 0, data.Length);
string str = System.Text.Encoding.UTF8.GetString(data);
textBox3.Text = textBox3.Text + str;
textBox3.SelectionStart = textBox3.TextLength;
textBox3.ScrollToCaret();
}
Run Code Online (Sandbox Code Playgroud)
在打开端口之前,我将 New Line 属性设置为 \r\n:
_serialPort.NewLine = "\r\n";
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
尝试这个:
_serialPort.NewLine = Environment.NewLine;
Run Code Online (Sandbox Code Playgroud)