Red de conocimiento informático - Espacio del host - Utilicé VB para escribir un programa sobre la comunicación del puerto serie. Al depurar, descubrí que siempre que abría el puerto serie, aparecía el mensaje "número de puerto no válido".

Utilicé VB para escribir un programa sobre la comunicación del puerto serie. Al depurar, descubrí que siempre que abría el puerto serie, aparecía el mensaje "número de puerto no válido".

El código de LZ abre COM3 de forma predeterminada. No sé cuál es el número de serie virtual de LZ.

Después de una inspección cuidadosa, el nombre del control de selección del puerto COM de LZ es incorrecto. El número 1 es la letra l en el código, lo que hace imposible seleccionar el puerto COM.

Modificar de la siguiente manera: Private?Sub?Combo1_Click()

If?MSComm1.PortOpen?=?True?Then

MSComm1.PortOpen?=?False ' Cerrar puerto de comunicación

End?If

MSComm1.CommPort?=?Combo1.ListIndex?+?1

Text3?=?MSComm1.CommPort

Fin?Sub

Privado?Sub?Command1_Click()

Activado?Error?GoTo?uerror

Si?Command1.Caption?= ? ¿"Cerrar el puerto serie"? Entonces

MSComm1.PortOpen?=?False

Command1.Caption?=?"Abrir el puerto serie"

Shape1 .FillColor?=? &HFFFFC0

Else

MSComm1.PortOpen?=?True

Command1.Caption?=?"Cerrar ventana"

Shape1.FillColor ?=?&HFF

¿Fin?Si

¿Salir?Sub

uerror:

msg$?=? "Número de puerto no válido"

Title$?=?"Asistente de depuración de puerto serie"

X?=?MsgBox(msg$,?48,?Title$)

¿Fin?Sub

¿Privado?Sub?form_load()

Si?MSComm1.PortOpen?=?True?Entonces

MSComm1.PortOpen?= ?Falso

Si no

¿Fin?Si

Combo1.AddItem?"COM1"

Combo1.AddItem?"COM2"

Combo1 .AddItem?"COM3"

Combo1.AddItem?"COM4"

Combo1.AddItem?"COM5"

Combo1.AddItem ?"COM6"

p>

Combo1.AddItem?COM7"

Combo1.AddItem?"COM8"

Combo1.ListIndex?=?0

MSComm1.CommPort ?=?Combo1.ListIndex?+?1

MSComm1.Settings?=?"19200,n,8,1"

Comando1.Caption ?=?"Abrir puerto serie"

Shape1.FillColor?=?&HFFFFC0

Option2.Value?=?True

Combo2.AddItem?"256000"

Combo2.AddItem?"128000"

Combo2.AddItem?"115200"

Combo2.AddItem?"57600"

Combo2 .AddItem?"38400"

Combo2.AddItem?"28800"

Combo2.AddItem?"19200"

Combo2.AddItem?"9600"

Combo2.AddItem? "4800"

Combo2.AddI

tem?"2400"

Combo2.AddItem?"1200"

Combo3.AddItem?"Ninguno?Ninguno"

Combo3.AddItem?"Odd "

Combo3.AddItem?"Even?Even"

Combo4.AddItem?"4"

Combo4.AddItem?"5"

¿Combo4.AddItem?"5"

Combo4.AddItem?"6"

Combo4.AddItem?"7"

Combo4.AddItem?"8 "

Combo5.AddItem?"1"

Combo5.AddItem?"2"

MSComm1.InBufferSize?=?1024

MSComm1. OutBufferSize?=?512

MSComm1.RTreshold?=?1

Fin?Sub

Privado?Sub?MSComm1_OnComm()

Dim?BytReceived()?As?Byte

Dim?i?As?Integer

Select?Case?MSComm1.CommEvent

Case?comEventRxOver

Text1.Text?=?""

Salir?Sub

Case?comEvReceive

MSComm1.InputLen?=?0

strBuff?=?MSComm1.Input

Si?MSComm1.InputMode?=?comInputModeBinary?Entonces

BytReceived()?=?strBuff

Para ?i?=?0?To?UBound(BytReceived)

Si?Len(Hex(BytReceived(i)))?=?1?Entonces

strData?= ?strData ?&?"0"?&?Hex(BytReceived(i))?&?""

Else

strData?=?strData?&?Hex(BytReceived(i)) )?&?""

Fin?Si

Siguiente

Texto1?=?Texto1?&?strData

strData ?= ?""

Else

Texto1?=?Text1?&?strBuff

Fin?Si

Fin?Seleccionar

Fin?Sub

Privado?Sub?Option1_Click()

MSComm1.InputMode?=?comInputModeText

Fin?Sub

Privado?Sub?Option2_Click()

MSComm1.InputMode?=?comInputModeBinary

Fin?Sub