pappu_sam
Member level 1
Hi all,
Iam using SIM300 gsm module to connect GPRS,
I got GPRS connectivity from hyperterminal using AT Commands,
Iam trying write code to interface those AT commands of GPRS using LPC2148 microcontroller
am able to receive OK upto AT+CSTT, but when I send AT+CIICR after that am not able to get response
please help me regarding this....
Iam using SIM300 gsm module to connect GPRS,
I got GPRS connectivity from hyperterminal using AT Commands,
Iam trying write code to interface those AT commands of GPRS using LPC2148 microcontroller
Code:
int main(void)
{
PINSEL0 = 0x00050005;
lcd_init();
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print(" GSM-GPRS-GPS ");
goto_cursor(0x40);
lcd_print(" SYSTEM");
delay(100);
lcd_write_control(0x01);
Init_UART1();
Init_UART0();
//gsm_init();
GSM_GPRS_INIT();
// while(1)
// {
// gsm_fun();
// }
}
////////////////////
unsigned char * append(unsigned char* s, char c)
{
int len = strlen(s);
s[len] = c;
s[len+1] = '\0';
return s;
}
////////////////////////
void GSM_GPRS_INIT()
{
unsigned char check;
unsigned char *AppendedString,*AppendedString2,*AppendedString3;
unsigned char ch;
unsigned char x=0;
unsigned char str0[50];
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print("GSM Initializing");
delay(100000000);
delay(100000000);
UART0_SendStr("Initializing");
// while(!(U1LSR&0X01));
// ch=U1RBR;
// UART0_SendByte(ch);
// while(ch!='y' || ch!='Y')
// {
// str0[x++]=ch;
// while(!(U1LSR&0X01));
// ch=U1RBR;
// UART0_SendByte(ch);
// }
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print("call ready");
delay(1000000);
do
{
check=SendATCommand(GPRS[0]); //AT <<OK
}while(check==0);
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print("AT+OK");
delay(1000000);
do{
check = SendCGDCONTCommand(); //AT+CGDCONT=1,"IP","airtelgprs.com" <<OK
}while(check==0);
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print("at+cgdcont=..+OK");
delay(1000000);
do
{
check=SendCSTTCommand(); // <<OK
}while(check==0);
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print("AT+CSTT=1+OK");
delay(1000000);
// //at+ciicr
do
{
check=SendCIICRCommand(); //delay <<OK
}while(check==0);
lcd_write_control(0x01);
goto_cursor(0x00);
lcd_print("AT+CIICR");
delay(1000000);
//
// //at+cifsr
// do
// {
// check=SendCommandCIFSR(GPRS[7]); //some IP address like 106.112.23.4
// }while(check==0);
// lcd_write_control(0x01);
// goto_cursor(0x00);
// lcd_print("AT+CIFSR");
// delay(10000);
//
// //at+cdnsorip=0
// do
// {
// check=SendCommand(GPRS[9]); // <<OK
// }while(check==0);
// lcd_write_control(0x01);
// goto_cursor(0x00);
// lcd_print("AT+CDNSORIP=0");
// delay(10000);
//
// //at+cipstart="TCP","61.12.108.35","8080"
// AppendedString3 = append(GPRS[10],'"');
// strcat(AppendedString3,GPRS[11]);
// AppendedString3 = append(AppendedString3 ,'"');
// AppendedString3 = append(AppendedString3,',');
// AppendedString3 = append(AppendedString3 ,'"');
// strcat(AppendedString3,GPRS[12]);
// AppendedString3 = append(AppendedString3 ,'"');
// AppendedString3 = append(AppendedString3 ,',');
// AppendedString3 = append(AppendedString3 ,'"');
// strcat(AppendedString3 ,GPRS[13]);
// AppendedString3 = append(AppendedString3 ,'"');
// //GPRS[10]+'"'+GPRS[11]+'"'+','+'"'+GPRS[12]+'"'+','+'"'+GPRS[13]+'"'
// do
// {
// check=SendCommandCIPSTART(AppendedString3); //<< OK CONNECT OK
// }while(check==0);
// lcd_write_control(0x01);
// goto_cursor(0x00);
// lcd_print("AT+CIPSTART");
// delay(10000);
//
// //at+cipsend=50
// do
// {
// check=SendCommandCIPSEND(GPRS[14]);
// }while(check==0); // prompt > and pass the strings end with Ctrl+Z
// lcd_write_control(0x01);
// goto_cursor(0x00);
// lcd_print("AT+CIPSEND");
// delay(10000);
//
//
// SEND_UART1("YoYo");
}
//////////////////////////
//unsigned char SendCIICRCommand - > at+ciicr delay <<OK
//////////////////////////////////
unsigned char SendCIICRCommand()
{
unsigned char ch;
unsigned char x=0;
unsigned char str0[50];
unsigned char str1[50];
delay(200);
UART0_SendStr("CIICR");
//UART1_SendStr("AT+CIICR");
delay(200);
SEND_CHAR('A');
SEND_CHAR('T');
SEND_CHAR('+');
SEND_CHAR('C');
SEND_CHAR('I');
SEND_CHAR('I');
SEND_CHAR('C');
SEND_CHAR('R');
//delay(100);
delay(100);
delay(400);
//delay(500000000);
// delay(100);
// delay(400);
// delay(100);
// delay(400);
// x=0;
// while(!(U1LSR&0X01));
// ch=U1RBR;
do{
//UART0_SendStr("Before Waiting");
while(!(U1LSR&0X01));
ch=U1LSR;
str1[x++]=ch;
UART0_SendByte(ch);
//UART0_SendStr(str1);
//UART0_SendStr("After Waiting");
}while((ch!='R'));
UART0_SendStr(str1);
delay(400);
SEND_CHAR('\r');
SEND_CHAR('\n');
// SEND_CHAR(0X0D);
// SEND_CHAR(0X0A);
delay(400);
x=0;
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str1[x++]=ch;
//UART0_SendByte('-');
}while(ch!='K');
UART0_SendStr(str1);
if((ch!='K'))
{
return(0);
}
return(1);
}
//////////////////////////
//unsigned char SendCSTTCommand - > at+cstt="airtelgprs.com","","" <<OK
//////////////////////////////////
unsigned char SendCSTTCommand()
{
unsigned char ch;
unsigned char x=0;
unsigned char str0[50];
unsigned char str1[50];
delay(200);
//UART0_SendStr(p);
//UART1_SendStr(p);
SEND_CHAR('A');
SEND_CHAR('T');
SEND_CHAR('+');
SEND_CHAR('C');
SEND_CHAR('S');
SEND_CHAR('T');
SEND_CHAR('T');
SEND_CHAR('=');
SEND_CHAR('"');
SEND_CHAR('a');
SEND_CHAR('i');
SEND_CHAR('r');
SEND_CHAR('t');
SEND_CHAR('e');
SEND_CHAR('l');
SEND_CHAR('g');
SEND_CHAR('p');
SEND_CHAR('r');
SEND_CHAR('s');
SEND_CHAR('.');
SEND_CHAR('c');
SEND_CHAR('o');
SEND_CHAR('m');
SEND_CHAR('"');
SEND_CHAR(',');
SEND_CHAR('"');
SEND_CHAR('"');
SEND_CHAR(',');
SEND_CHAR('"');
SEND_CHAR('"');
SEND_CHAR('\r');
SEND_CHAR('\n');
//SEND_CHAR(0X0D);
//SEND_CHAR(0X0A);
delay(100);
delay(400);
x=0;
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str1[x++]=ch;
}while((ch!='K'));
UART0_SendStr(str1);
if((ch!='K'))
{
return(0);
}
return(1);
}
//////////////////////////
//unsigned char SendCGDCONTCommand - > AT+CGDCONT=1,"IP","airtelgprs.com" <<OK
//////////////////////////////////
unsigned char SendCGDCONTCommand()
{
unsigned char ch;
unsigned char x=0;
unsigned char str0[50];
unsigned char str1[50];
delay(200);
//UART0_SendStr(p);
//UART1_SendStr(p);
SEND_CHAR('A');
SEND_CHAR('T');
SEND_CHAR('+');
SEND_CHAR('C');
SEND_CHAR('G');
SEND_CHAR('D');
SEND_CHAR('C');
SEND_CHAR('O');
SEND_CHAR('N');
SEND_CHAR('T');
SEND_CHAR('=');
SEND_CHAR('1');
SEND_CHAR(',');
SEND_CHAR('"');
SEND_CHAR('I');
SEND_CHAR('P');
SEND_CHAR('"');
SEND_CHAR(',');
SEND_CHAR('"');
SEND_CHAR('a');
SEND_CHAR('i');
SEND_CHAR('r');
SEND_CHAR('t');
SEND_CHAR('e');
SEND_CHAR('l');
SEND_CHAR('g');
SEND_CHAR('p');
SEND_CHAR('r');
SEND_CHAR('s');
SEND_CHAR('.');
SEND_CHAR('c');
SEND_CHAR('o');
SEND_CHAR('m');
SEND_CHAR('"');
SEND_CHAR(0X0D);
SEND_CHAR(0X0A);
delay(100);
delay(400);
x=0;
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str1[x++]=ch;
}while((ch!='K'));
UART0_SendStr(str1);
if((ch!='K'))
{
return(0);
}
return(1);
}
//////////////////////////
//unsigned char SendCGATTCommand
//////////////////////////////////
unsigned char SendCGATTCommand(unsigned char *p)
{
unsigned char ch;
unsigned char x=0;
unsigned char str0[50];
unsigned char str1[50];
delay(200);
UART0_SendStr(p);
SEND_CHAR('A');
SEND_CHAR('T');
SEND_CHAR('+');
SEND_CHAR('C');
SEND_CHAR('G');
SEND_CHAR('A');
SEND_CHAR('T');
SEND_CHAR('T');
SEND_CHAR('=');
SEND_CHAR('1');
delay(100);
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str0[x++]=ch;
//UART0_SendByte(ch);
}while(ch!='1');
UART0_SendStr(str0);
//delay(400);
//delay(400);
SEND_CHAR(0X0D);
SEND_CHAR(0X0A);
delay(400);
delay(400);
delay(400);
x=0;
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str1[x++]=ch;
UART0_SendByte(ch);
//UART0_SendStr(str1);
}while((ch!='K') || (ch!='R'));
UART0_SendStr(str1);
if((ch!='K') || (ch!='R'))
{
return(0);
}
return(1);
}
//////////////////////////
//unsigned char SendATCommand
//////////////////////////////////
unsigned char SendATCommand(unsigned char *p)
{
unsigned char ch;
unsigned char x=0;
unsigned char str0[50];
unsigned char str1[50];
delay(200);
UART0_SendStr(p);
UART1_SendStr(p);
delay(100);
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str0[x++]=ch;
}while(ch!='T');
UART0_SendStr(str0);
delay(400);
SEND_CHAR('\r');
SEND_CHAR('\n');
//SEND_CHAR(0X0D);
//SEND_CHAR(0X0A);
delay(400);
x=0;
do{
while(!(U1LSR&0X01));
ch=U1RBR;
str1[x++]=ch;
//UART0_SendByte('-');
}while(ch!='K');
UART0_SendStr(str1);
if(ch!='K')
{
return(0);
}
return(1);
}
am able to receive OK upto AT+CSTT, but when I send AT+CIICR after that am not able to get response
please help me regarding this....
Last edited: