Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
11 years, 10 months ago.
How to read sms?
Hi,
I'm testing the program with (SIM900) nucleo F401 and can send sms to my phone, but I have a problem with reading sms. I've modified the program to monitor sms message at pc terminal, here is my program
GPRS_Shield_Test
#include "mbed.h"
#include "gprs.h"
Serial pc(USBTX, USBRX); //to monitor at pc terminal
#define GPRS_TX_PIN PA_9
#define GPRS_RX_PIN PA_10
#define SEND_SMS_TEST 1
#define CALL_UP_TEST 0
#define ANSWER_TEST 0
#define READ_SMS_TEST 1
#define BAUD_RATE 9600 // Baud rate of GPRS Shield
#define PHONE_NUMBER "9*****5"
GPRS gprsTest(GPRS_TX_PIN, GPRS_RX_PIN, BAUD_RATE, PHONE_NUMBER);
void messageHandle(void)
{
__disable_irq();
int messageType = gprsTest.loopHandle();
if(MESSAGE_RING == messageType) {
gprsTest.answer();
} else if(MESSAGE_SMS == messageType) {
char smsMessage[SMS_MAX_LENGTH];
gprsTest.getSMS(smsMessage);
pc.puts("\n\rSMS");
}
__enable_irq();
}
int main(void)
{
pc.printf("\n\rSMS with SIM900\n\r");
while(0 != gprsTest.init()) {
wait(2);
}
#if SEND_SMS_TEST
gprsTest.sendSMS(PHONE_NUMBER, "hello world"); //define phone number and text
#endif
#if CALL_UP_TEST
gprsTest.callUp(PHONE_NUMBER);
#endif
#if ANSWER_TEST || READ_SMS_TEST
gprsTest.gprsSerial.attach(&messageHandle);
#endif
while(1);
// return 0;
}
It should show "SMS" at pc terminal when a sms is received
Aung