serial-port - seriales - puerto serie arduino mega
¿Cambia el puerto COM a través de registro, línea de comandos o software? (3)
¿Alguien sabe cómo cambiar el número de puerto COM que Windows asigna a un puerto COM virtual USB? Puede cambiar esto a través del Administrador de dispositivos y hacer clic en el botón Avanzado ... pero, ¿cómo puede hacerlo a través de una API, un cambio de registro o una operación de línea de comando?
Alguna idea, por favor?
A primera vista, no sé cómo hacerlo, pero esto es lo que haría:
Utilice el método Mi PC / Administrador de dispositivos para asignar un puerto de comunicaciones improbable, como 61. Luego use regedit para buscar COM61 y vea qué hizo el Administrador de dispositivos.
Sé que he visto todas estas cosas en el registro en alguna parte, pero una búsqueda rápida de la base de conocimiento no arrojó las respuestas.
Puede encontrar esta respuesta útil:
¿Cómo obtengo el nombre descriptivo de un puerto COM en Windows?
Se trata de encontrar el nombre descriptivo, pero creo que lo encontrará apuntando hacia el área correcta del registro, utilizando el mecanismo "oficial" para ubicar la clave correcta.
Sin embargo, si cambia la asignación del puerto, también debe actualizar la base de datos del puerto de com, vea: https://msdn.microsoft.com/en-us/library/ff546481.aspx
Cuando tuve que hacer algo similar, encontré el dispositivo correcto utilizando el mecanismo descrito en el artículo SO vinculado, y luego llamé a SerialDisplayAdvancedSettings ((HWND) NULL, hDeviceInfo, y devInfoData); para mostrar el diálogo avanzado y dejar que el SO maneje el trabajo duro.
En la actualidad, es cada vez más probable que te encuentres con puertos serie "no reales" (p. Ej., Puertos USB) que pueden tener otras incompatibilidades de las que también debes detenerte.
Supervisé los cambios en el registro durante el cambio del puerto COM 1 a 110 y encontré modificaciones en las siguientes claves:
[HKEY_LOCAL_MACHINE / HARDWARE / DEVICEMAP / SERIALCOMM] "/ Device / Serial0" = "COM110"
[HKEY_LOCAL_MACHINE / SYSTEM / ControlSet001 / Control / COM Arbiter Name] "ComDB" = hex (3): FC, 7F, 00,00,00,00,00,00,00,00,00,00,00,20, 00,00,00,00,00,00, / 00,00,00,00,00,00,00,00,00,00,00,00,00
[HKEY_LOCAL_MACHINE / SYSTEM / ControlSet001 / Enum / ACPI / PNP0501 / 1 / Device Parameters] "PortName" = "COM110"