Cómo esperar '' en formato de mensaje SIM900

1

Hola a todos, estoy intentando enviar sms con SIM900 y PIC18F2520 . Tengo el botón adjunto al pin de MCU. Entonces, cada vez que se presiona el botón, se debe enviar sms. El siguiente es el código que estoy usando para enviar SMS:

if(PORTCbits.RC1==1)
{
  DelayMs(10);
  if(PORTCbits.RC1==1)
  {
    UARTsend("AT+CMGS=\"99********\"\r ");
    DelayMs(100);
    UARTsend("Hello World");
    DelayMs(10);
    UARTsend("\x1A ");
    DelayMs(10);
 }
}

Ahora, cuando lo ejecuto en modo de depuración, recibo sms. Pero cuando programo el dispositivo, lo que sucede es que envía el comando AT+CMGS y luego envía Hello world y \x1A . Después de enviar todas estas cosas, entonces muestra > , eso significa que ahora espera el contenido del mensaje. No sé por qué está sucediendo. He dado el retraso adecuado después de AT+CMGS . Intenté aumentar la demora pero de nuevo sin cambios. Cómo esperar a > al enviar sms. Por favor ayuda

    
pregunta S Andrew

1 respuesta

1

Si está interesado en recibir cierto carácter en UART independientemente del tiempo, verifique la sección de interrupción de UART. Puedes hacer así, - Habilitar la interrupción de la recepción UART. - En while (1) - Bucle infinito -En cuanto reciba datos, verifique si se espera o no. (En tu caso será '>') -Y cuando reciba los datos esperados, puede desactivar la interrupción, detener la comunicación o realizar otra tarea.

    
respondido por el Ravi C

Lea otras preguntas en las etiquetas