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.
Yeah, now I understand it much better. Thanks a lot. I don't have the hardware currently so will check for the responses to the strings sent once back in the lab where I work. This is a much effective way of working.
I'll revert back if I face any problem again. Thanks again.