我正在使用串行设备,我想用微控制器与计算机通信。在我的C#程序中,我可以设置波特率,停止位,数据位等。这些只是在我的C#程序中。
例如,我在微控制器和我的C#程序中设置波特率115200但是当我在设备管理器中看到我的设备的属性时,波特率仍然使用默认值9600 bps。我不知道通信,我的C#程序和微控制器是否使用115200bps,以及使用9600bps的属性,但是通信是否有效。
如何在设备管理器中更改设备的属性?
答案 0 :(得分:2)
在C#程序中设置串口时,它将使用Win32 SetCommState API执行此操作。无论您使用何种串行通信库,都是如此。但是,Win32 SetCommState API永远不会更改设备管理器中显示的波特率。
设备管理器中显示的值来自设备的驱动程序,它是您在程序中未明确设置时使用的默认值。安装驱动程序后,该值将写入Windows注册表。
只要您在程序中进行设置,就不必担心设备管理器中显示的值。
但是,如果您确实想要更改“设备管理器”中显示的值,可以通过更改Windows注册表中的值来实现。
密钥通常位于此处:
" HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Ports"
您可以更改与要更改的端口对应的键的值。
例如,如果您想更改COM2设置,并且如果" COM2:" key的值为" 9600,n,8,1"您可以将其更改为" 115200,n,8,1"