como diferenciar datos que me llegan por el puerto en serie con visual basic

hola wenas , no se si este es el lugar apropiado pero tengo una pregunta a ver si alguien m la puede resolver. Estoy haciendo un proyecto de una estacion meteorologica para ello estoy usando un pic 16f876 con entradas adc por las cuales m llegan los diferentes datos de temperatura direccion del viento etc.. yo comunico el pic y el ordenador mediante un rs232 con el puerto serie . En el ordenador tengo hecho el programa de visual basic el cual recibe el dato por el puerto hace una serie de calculos con el y lo imprime en una etiqueta .cuando solo tengo conectada la temperatura me lo ace bn k es un circuito con un lm35 funciona correctamente xo cuando intento coordinar otro dato no logro escoger en cada momento el dato del puerto en serie correcto .Lo he intentado poniendo unos if en el programa del pic para que envie un dato u otro segun el caracter k le llega y las variables se las envio x el visual basic el problema esta en que lo kiero acer automatico es decir k este siempre imprimiendo una y despues la otra si tener k usar ningun boton, para ello he puesto un timer k lee y otro k imprime xo se me mezclan los datos e incluso los caracteres de control no se si es un problema de los intervalos de los timers.

¿Deberia tener en cuenta para coordinar el pic y el visual basic la duracion de las instrucciones de los programas o son irrelevantes?

¿hay alguna forma de restear o borrar el contenido del puerto despues de k le llegue un dato?

Si alguien cree k puede ayudarme lo agradeceria muxisimo porque llevo mas de una semana dandole vueltas y no tngo manera de acerlo.SALUDOS Y GRACIAS
 
Última edición:
Por los lenguajes que he programado Delphi y C++ el puerto se comporta igual en todos.
Cuando vas a leer el buffer de entrada primero ves si hay datos. Si hay datos, lees lo que ha llegado cargandolo en el la ram. Una vez leido el buffer de entrada lo tienes puesto a cero (reseteado).
Saludos
 
Wenas y gracias tienes razon lo hace asi el problema k tenia es que tenia 8 bytes de recepcion por eso m mezclaba los datos aora lo he puesto en un byte y funciona perfectamente gracias por contestar
 
Atrás
Arriba