Hola a todos, estoy tratando de enviar sms usando SIM900
y PIC18F2520
. Tengo un botón adjunto al pin de MCU. Entonces, cada vez que se presiona el botón, se debe enviar un 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 AT+CMGS
un comando y luego envía Hello world
y \x1A
. Después de enviar todas estas cosas, se muestra >
, lo que 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 nuevamente no hubo cambios. Como esperar >
al enviar sms. Por favor ayuda
Si está interesado en recibir cierto carácter en UART independientemente de la hora, consulte la sección de interrupción de UART. Puede hacer esto, - Habilitar la interrupción de recepción de UART. - En while (1) - Bucle infinito - Tan pronto como reciba datos, compruebe si se espera o no. (En su caso, será '>') -Y cuando reciba los datos esperados, puede deshabilitar la interrupción, detener la comunicación o continuar con otra tarea.
Bence Kaulics
while(GSM_uart_recieve() != '>');
. Por supuesto, se puede mejorar con un temporizador para crear una funcionalidad de tiempo de espera simple para garantizar que no se quede atrapado en el ciclo while si el módulo no responde.Bence Kaulics
>
se recibe, y así sucesivamente.Andrés
if(ReadUSART()=='>')
y luego enviar sms. pero nunca entra en la condición if. He leído en alguna parte que sim900 también envía algunos <CR><LF> tal vez debido a que no entran en la condición if. Cómo procesarlosBence Kaulics
ReadUSART()
?Andrés
AT+CMGS
por lo que ahora funciona, pero creo que esa no es la solución adecuada. Debería verificar si lee>
y luego enviar el mensaje. lo estoy intentandomohammad farahi