给GPRS模块发送一个AT+CSQ指令求各位大神来看我的代码有什么问题

2019-07-14 18:21发布

我要实现的功能是我给GPRS模块发送一个AT+CSQ指令然后模块会返回一个值例如 +CSQ: 28,0
我要取出整型的28和0
我有问题的代码如下
void Get_CSQ(char *pCSQ)
{
char tmp[2];
printf("ATE0 ");
while(0==URT_STA);
USART_RX_STA=0;
Delay_Ms(2000);
Delay_Ms(2000);
Delay_Ms(2000);
Delay_Ms(2000);
Delay_Ms(2000);
Delay_Ms(2000);
printf("AT+CSQ ");
    /* 等待GPRS模块反馈数据 */  
  while(0==URT_STA)
{
  TTY_BUFF[USART_RX_STA&0X3F]=USART_RX_BUF[USART_RX_STA&0X3F];
}
    /* 初始化串口接收中断标志 */
USART_RX_STA=0;
Delay_Ms(2000);
substr(tmp,(char *)TTY_BUFF,6,2);
pCSQ[0]=atoi(tmp);
pCSQ[1]=0;
}
pCSQ[0] 手动等于28能正常输出,但是pCSQ[0]=atoi(tmp);输出为0,
TTY_BUFF里面的内容为:TTY_BUFF[64]={'+','C','S','Q',':','x20','2','8',',','0'};

谁能说说怎么回事或者谁有更好的取法 谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。