我要实现的功能是我给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'};
谁能说说怎么回事或者谁有更好的取法 谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>