C# Windows和Linux上串行端口的区别-.NET/Mono
我正在开发一个c#.NET程序,最终将在Linux上运行Mono。我正在使用Visual Studio 2017在Windows 10上进行C#开发。准备好后,我将把它转移到运行最新Mono(5.4)的Linux(Ubuntu用于测试,Yocto用于测试和部署) 在应用程序中,我使用来自System.IO.ports的2个COM端口。没什么特别的。这些端口用于控制外部硬件。COM端口目前通过USB-to-RS-232适配器C# Windows和Linux上串行端口的区别-.NET/Mono,c#,linux,windows,mono,serial-port,C#,Linux,Windows,Mono,Serial Port,我正在开发一个c#.NET程序,最终将在Linux上运行Mono。我正在使用Visual Studio 2017在Windows 10上进行C#开发。准备好后,我将把它转移到运行最新Mono(5.4)的Linux(Ubuntu用于测试,Yocto用于测试和部署) 在应用程序中,我使用来自System.IO.ports的2个COM端口。没什么特别的。这些端口用于控制外部硬件。COM端口目前通过USB-to-RS-232适配器 comDevice = new SerialPort(); if (i
comDevice = new SerialPort();
if (isWindows())
{
//- Windows
comDevice.PortName = "COM15";
}
else
{
//- Linux
comDevice.PortName = "/dev/ttyUSB0";
}
comDevice.BaudRate = 19200;
comDevice.DataBits = 8;
comDevice.Parity = Parity.None;
comDevice.StopBits = StopBits.One;
comDevice.Handshake = Handshake.None;
comDevice.ReadBufferSize = 1024;
没什么特别的。非常基本的端口设置
当我将设备连接到Linux(Ubuntu14.04 LTS)上并使用终端程序(PuTTY)时,一切都如预期的那样工作。对于其中一个设备,我可以发出2个命令:
- “O”-打开设备
- “C”-关闭设备
- “D”-执行编程事件
如果有人能给我指出一个正确的方向,告诉我在Windows中哪些属性可能是Linux/Mono的默认属性,这会有很大帮助。这是关于您的程序的问题,还是PuTTY为什么在两个平台上看到不同的东西?a列和B列各有一点:)PuTTY的讨论更像是我试图弄清楚为什么代码根据要求的内容表现出不同的行为。Windows和Linux串行端口的默认状态之间存在某种差异。如果我能得到一些关于这个的信息,我也许能弄明白。哦!缺少设备上的控制线路:(需要将其拉高。这样做了,现在工作正常。感谢您考虑我的问题。