C#串行端口类

C#串行端口类,c#,serial-port,C#,Serial Port,我们看到.NET SerialPort的奇怪行为。 我们没有从端口获得正确的配置,因为它们是在Windows中配置的 例如,com1在windows中以38400的波特率配置 代码: serialPort.BaudRate始终为9600 当我们从kernel32.dll使用GetDefaultCommConfig winApi时,我们得到了正确的波特率 有人能解释一下吗?是的,我知道serialPort.BaudRate,但你可以做一个简单的测试。 通过Windows you COM端口的de设

我们看到.NET SerialPort的奇怪行为。 我们没有从端口获得正确的配置,因为它们是在Windows中配置的

例如,com1在windows中以38400的波特率配置 代码:

serialPort.BaudRate始终为9600

当我们从kernel32.dll使用GetDefaultCommConfig winApi时,我们得到了正确的波特率


有人能解释一下吗?

是的,我知道serialPort.BaudRate,但你可以做一个简单的测试。 通过Windows you COM端口的de设备管理器进行检查,对于现有端口,将波特率设置为38400(仅举一个示例)

假设它是COM3。 然后在C#中通过 SerialPort SerialPort=新的SerialPort(“COM3”)


然后检查它的波特率。它不是38400。因此,在引擎盖下,C#中的COM3与Windows中配置的参数不同

您知道可以更改
serialPort.BaudRate
以满足您的连接需求,因为它在您使用一个参数创建实例时使用。您还可以使用此构造函数:
     SerialPort serialPort = new SerialPort("COM1");