到目前为止,我还没有找到答案,但我想知道是否有一种方法,特别是C#,可以检测串行端口能够达到的最高波特率,而无需进行测试。
它的硬件配置文件中是否存在某些内容或存储某个端口的可用波特率,C#可以查询?
答案 0 :(得分:2)
使用反射你可以/应该这样做:
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);
注意:将打开端口以检查其可设置的波特率! :)
有关如何检查波特率的更多信息,请参阅此帖子:How to programatically find all available Baudrates in C# (serialPort class)