(Ask) Leer cadena a través de RS232 para MCS8051

Y

yratman

Guest
Queridos todos,

¿Alguien puede compartir programa de ejemplo en C (Keil uvision) para recibir la cadena en serie.Me pueden enviar conjunto de caracteres (cadena) de la PC, pero sí sé cómo leer en el MCU.

Muchas gracias por cualquier ayuda.
Considerar,
yratman.

 
Bueno, hace su particular MCU tienen un transceptor RS232 interior?De lo que he visto la mayoría de ellos mediante el trabajo no se interrumpe cuando recibe una interrupción y no hay un registro que se llena con los datos recibidos.

Ahora, suponiendo que el compilador uVision se ajusta a la mayoría de la especificación ANSI C yo esperaría recibir un programa usando el hardware que mirar algo como esto:

Código:unsigned char rs232_rx_register volátiles;

unsigned char * receivedString / / asignar este lugar para algunos de longitud ...

unsigned char receivedLength / / algo para que esto vaya un poco más rápido.
se pone a 0 antes de las interrupciones están habilitadas

unsigned char newString; / / leer esto en su función principal.
es una bandera.
se pone a 0 antes de las interrupciones están habilitadas

/ **

* La interrupción de RS-232

* /

interrumpir vacío ()

(

///.... la determinación de que este código es, en efecto, la interrupción rs232 ....receivedString [receivedLength] = rs232_rx_register;

if (receivedString [receivedLength] == 0x00) (newString = 1;)

receievedLength ;///.... otras interrumpir código o algo ....

)

/ **

* Su programa principal

* /

void main ()

(

///... código de inicio ...

while (1) / / el bucle principal

(

///... otro código ...

/ / desactivar las interrupciones para reducir las posibilidades de lectura, mientras que la escritura (que apesta cuando esto sucede)

if (newString == 1)

(

/ / hacer algo con esta nueva cadena que acaba de

receivedLength = 0; / / todo lo necesario para restablecer la cadena siguiente

newString = 0;

)

/ / volver a habilitar las interrupciones para que pueda obtener más cadenas

///... otro código ...

)

)

 
Explicar de otra manera,

1.Ur controlador tendrá un transceptor de la sección de transferencia de datos asincrónica que llamamos una UART.
2.Cuando u desea recibir datos desde un PC mediante UART, u necesidad de utilizar un SFR presente en la controller.Whatever los datos recibidos a través del puerto serie, se puede leer de SBUF, un registro de funciones especiales.
3.Whenever se reciben datos desde un medio externo, se produce recibir interrumpir y conducirá a ISR.Recibir interrupción se produce sólo si el puerto serie u permitir interrumpir durante controlador intialization.
4.ISR debe ser escrita de tal manera que u tienen que recoger los datos de SBUF y lo colocamos en un arreglo como por ur requirement.This ha sido claramente explicado en el anterior puesto.

 

Welcome to EDABoard.com

Sponsor

Back
Top