在设备管理器中更改属性

Change properties in device manager

我正在使用串行设备,我想将我的计算机与微控制器进行通信。在我的 C# 程序中,我可以设置波特率、停止位、数据位等。这些都在我的 C# 程序中。

例如,我在微控制器和我的 C# 程序中设置了波特率 115200,但是当我在设备管理器中看到我的设备的属性时,波特率仍然使用默认值,9600 bps。我不知道它是否适合通信,我的 C# 程序和微控制器使用 115200bps,在属性中使用 9600bps,但通信正常。

如何在设备管理器中更改设备属性?

当您在 C# 程序中设置串行端口时,它将使用 Win32 SetCommState API 来完成。无论您使用何种串行通信库,都是如此。但是,Win32 SetCommState API 永远不会更改设备管理器中显示的波特率。

设备管理器中显示的值来自设备驱动程序,它是您未在程序中明确设置时使用的默认值。安装驱动程序时,该值将写入 Windows 注册表。

只要在程序中设置好,就不用担心设备管理器中显示的值了。

但是,如果您真的想更改设备管理器中显示的值,可以通过更改 Windows 注册表中的值来实现。

密钥通常位于此处:

"HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports"

您可以更改与您希望更改的端口对应的密钥的值。

例如,如果您想更改 COM2 设置,并且 "COM2:" 键的值为“9600,n,8,1”,您可以将其更改为“115200,n,8 ,1