Red de conocimientos turísticos - Información de alquiler - ¿Cuál es el motivo del error al recibir datos en la comunicación serial 485 de dos microcontroladores 51? Se necesitan unos tres o cinco envíos antes de que todo se reciba correctamente. El procedimiento es el siguiente:

¿Cuál es el motivo del error al recibir datos en la comunicación serial 485 de dos microcontroladores 51? Se necesitan unos tres o cinco envíos antes de que todo se reciba correctamente. El procedimiento es el siguiente:

1. ¡Alguien apagó la interrupción del puerto serie antes de enviar datos! Espere a que se complete la transmisión antes de activar la interrupción del puerto serie.

De esta manera, si se reciben datos mientras se espera enviar datos, no se puede ingresar a la función de interrupción y estos datos recién recibidos no se guardarán.

Con este método de procesamiento, los datos recibidos se perderán.

2. Algunas personas no apagan la interrupción del puerto serie antes de enviar datos. Cuando TI = 1, es posible ingresar al programa de interrupción.

Pero en este momento, en la función de interrupción, ¡borre TI!

De esta manera, while(TI == 0); en la función principal nunca esperará a que se envíe el indicador de finalización.

3. Algunas personas no distinguen la fuente de la interrupción en el programa de interrupción, pero dejan que la interrupción causada por el envío ejecute el programa que recibe la interrupción.

Publicamos nuestro propio método para esto:

Al recibir datos, use el "método de interrupción", borre el RI y luego use una variable para notificar a la función principal que nuevos datos ha sido recibido.

Al enviar datos, utilice también el "método de interrupción", borre TI y luego utilice otra variable para notificar a la función principal que los datos se han enviado.

De esta manera, la recepción y el envío son básicamente lo mismo, y el programa escrito también está muy estandarizado y es fácil de entender.

Más importante aún, la función principal no tiene que esperar ahí hasta que se complete el envío y puede tener más tiempo para mirar otras banderas.