Buennass:
Yo tuve un problema parecido, cuando le enviaba caracteres de mi programa vb al dspic se colgaba porque aunque estuviesen configurados los dos a la misma velocidad (programa vb y dspic) el dspic no le daba tiempo a cogerlos todos y se colgaba, consegui solucionarlo poniendo un delay que para salir del paso me sirvió, yo puse esto:
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'Puede dar problemas leido en el foro
Y esto dentro de la función:
frmPrincipal.MSComm1.Output = Chr$(&H3C) 'Caracter sincronismo
Sleep 100 'Si no le pongo este delay se resetea el dspic
frmPrincipal.MSComm1.Output = Chr$(&H1) 'Modo Algoritomo PY0
Sleep 100
.....
si quieres leer más del problema que tuve por si es el mismo que tu tuviste aquí te dejo lo que escribi en el foro y lo que me respondieron,
Foro VBForo dspicSuerte y saludos,