This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Interfacing STM32F107 with a GSM Modem

Hello,

I am trying to use the STM32107VC EVAL board to send a message using a GSM Modem by sending AT commands via the USART.

I have created the following code for the same. The output is showing on the hyper terminal, but it is still not sending messages through the Modem.

Can anyone please help and suggest where I am going wrong?? Thank you!

void init_GSM_Modem(void);

const char command_CMGF[]="AT+CMGF=1\r";              //Selecting text mode
const char CtrlZ =0x1A;

const char command_CMGS[]="AT+CMGS=+91989xxxxxxxx\r"; //Phone number to send message to

const char command_AT[]="AT\r";

const char msg01[]="Hello! This is a Test Message via STM32F107";     //Message to be sent

/* Leaving out init_serial, SendChar and GetChar Functions for reducing the code length. */

/*----------------------------------------------------------------------------
 *              init_GSM_Modem : Initialize Modem Commands
 *---------------------------------------------------------------------------*/

void init_GSM_Modem(void)
{
        delay2();

        puts(command_AT);
        delay2();

        puts(command_CMGF);
        delay2();

        puts(command_CMGS);
        delay2();

        puts(msg01);
        delay2();

        while (!(USART2->SR & 0x0080));
        USART2->SR & 0x0000;
        USART2->DR = 0x1A;    //sending CtrlZ command
}

int main(void)
{
        SystemInit();

        init_serial();
        init_GSM_Modem();

        while(1)
        {;}
}

I have a feeling that I am doing something wrong while sending the "CtrlZ command". I wanted to send it when the interrupt flag was raised by hardware and cleared by software.