Como utilizar mas de un
puerto de comunicación serial.
No es de lo más común pero
es posible que se quieran utilizar más de un puerto serial en el mismo micro.
Comúnmente para un solo
puerto configuramos el mismo de la siguiente forma:
#use RS232(BAUD=9600, XMIT=PIN_C1,
RCV=PIN_C2,FORCE_SW)
De esta forma le decimos la
velocidad y los pines que utilizaremos como TX y RX, luego para enviar un dato
por serial utilizamos la función printf();
por ejemplo:
printf(“VALOR1: %d\n”,valor1);
donde mostramos el valor1 en
la salida serial.
Ahora si queremos incluir
otra salida serial podríamos hacerlo de la siguiente forma:
#use RS232(BAUD=9600, XMIT=PIN_B1,RCV=PIN_B2,FORCE_SW)
Aquí vemos que es igual a la
otra forma pero cambiamos los pines C1 y C2 por B1 y B2, pero hay algo que
sigue quedando mal, cuando llamemos a la función printf(); para que nos
muestre el valor2 será:
printf(“VALOR2: %d\n”,valor2);
pero esto por que puerto
saldrá? Bueno aquí esta la diferencia, para que podamos incluir mas de un
puerto de transmisión debemos incluir en su configuración la directiva STREAM
donde la igualaremos al nombre del puerto, por ejemplo: STREAM=SERIAL1, ahora ambas directivas quedaran de la siguiente
forma:
#use RS232(BAUD=9600, XMIT=PIN_C1,RCV=PIN_C2,FORCE_SW,STREAM=SERIAL1)
#use RS232(BAUD=9600, XMIT=PIN_B1,RCV=PIN_B2,FORCE_SW,STREAM=SERIAL2)
Y para terminar esto los
llamados a la función printf();
quedaran:
fprintf(SERIAL1,"VALOR1: %d\n”,valor1);
fprintf(SERIAL2,"VALOR2: %d\n”,valor2);
Y esto se repetirá según la
cantidad de puertos a utilizar.
Tener en cuenta que el
protocolo SPI/EUSART del MCU por Hardware será uno solo, esta forma de crear
puertos es netamente virtual por ende los tiempos del procesador será más
lento, es recomendable para procesadores de gama media alta.
No hay comentarios.:
Publicar un comentario