.net core windows和linux之间的串行通信显示垃圾字符

.net core windows和linux之间的串行通信显示垃圾字符,.net-core,serial-port,.net Core,Serial Port,我正在开发一个在windows和linux系统之间进行串口通信的程序。当我从linux向windows发送消息时,我得到的是垃圾字符,而不是实际的消息,当我从windows向linux发送消息时也会发生同样的情况。我收到的数据事件代码为: void sp_DataReceived(object sender, SerialDataReceivedEventArgs e) { byte[] buffer = new byte[256]; _serialPort.Re

我正在开发一个在windows和linux系统之间进行串口通信的程序。当我从linux向windows发送消息时,我得到的是垃圾字符,而不是实际的消息,当我从windows向linux发送消息时也会发生同样的情况。我收到的数据事件代码为:

void sp_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
        byte[] buffer = new byte[256];
        _serialPort.Read(buffer, 0, buffer.Length);

       Console.WriteLine(Encoding.UTF8.GetString(buffer));
}
我只在windows和linux上获得垃圾字符。两台机器上运行的代码相同。我做错了什么?是否存在编码问题?我的代码是.NETCore3.1。配置包括:

波特率:2400

平价:无

数据位:8

汉克:没有


非常感谢您的帮助

您确定双方配置了相同的速度吗?请共享串行端口初始化代码。是的,我使用相同的配置。我已经编辑了这个问题,并在问题@MaximSagaydachny中添加了配置