.NET SerialPort出现奇怪的行为。 与Windows中配置的端口不同,我们没有从端口获得正确的配置。
例如,com1在Windows中以38400的波特率配置 在代码中:
SerialPort serialPort = new SerialPort("COM1");
serialPort.BaudRate始终为9600。
当使用来自kernel32.dll的GetDefaultCommConfig winApi时,我们将获得正确的波特率。
有人可以解释吗?
答案 0 :(得分:0)
是的,我知道serialPort.BaudRate,但是您可以进行简单的测试。 通过Windows的设备管理器检查您的COM端口,并检查是否存在现有端口,将波特率设置为38400(仅作为示例)
假设它是COM3。 然后在C#中通过创建一个新的SerialPort对象 SerialPort serialPort =新的SerialPort(“ COM3”);
然后检查它是BaudRate。它不是38400。因此,在幕后,C#中的COM3不是具有与Windows中配置的相同参数的COM3。