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 p >
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" p>
Combo1 .AddItem?"COM3"
Combo1.AddItem?"COM4"
Combo1.AddItem?"COM5"
Combo1.AddItem ?"COM6"
p>Combo1.AddItem?COM7"
Combo1.AddItem?"COM8"
Combo1.ListIndex?=?0 p>
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" p>
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 p>
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