到目前为止,我还没有找到答案,但我想知道是否有一种方法,特别是使用 C#,可以检测串行端口的最高波特率,而无需进行测试。
它的硬件配置文件中是否有某些东西或存储某个端口的可用波特率的东西,C# 可以查询?
到目前为止,我还没有找到答案,但我想知道是否有一种方法,特别是使用 C#,可以检测串行端口的最高波特率,而无需进行测试。
它的硬件配置文件中是否有某些东西或存储某个端口的可用波特率的东西,C# 可以查询?
使用反射你可以/应该这样做:
serialPort = new SerialPort(portName);
serialPort.Open();
object p = serialPort.BaseStream.GetType().GetField("commProp", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(serialPort.BaseStream);
Int32 bv = (Int32)p.GetType().GetField("dwSettableBaud", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public).GetValue(p);
注意:端口将被打开以检查其可设置的波特率!:)
有关如何检查波特率的更多信息,请参阅这篇文章:如何以编程方式在 C# 中查找所有可用的波特率(serialPort 类)