求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】
我要实现的功能是我给GPRS模块发送一个AT+CSQ指令然后模块会返回一个值例如 +CSQ: 28,0我要取出整型的28和0
我有问题的代码如下
void Get_CSQ(char *pCSQ)
{
char tmp;
printf("ATE0\r\n");
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\r\n");
/* 等待GPRS模块反馈数据 */
while(0==URT_STA)
{
TTY_BUFF=USART_RX_BUF;
}
/* 初始化串口接收中断标志 */
USART_RX_STA=0;
Delay_Ms(2000);
substr(tmp,(char *)TTY_BUFF,6,2);
pCSQ=atoi(tmp);
pCSQ=0;
}
pCSQ 手动等于28能正常输出,但是pCSQ=atoi(tmp);输出为0,
TTY_BUFF里面的内容为:TTY_BUFF={'+','C','S','Q',':','\x20','2','8',',','0'};
谁能说说怎么回事或者谁有更好的取法 谢谢!
RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】
你先把结果 用串口通信软件 在电脑上面显示看看 正确不正确 再考虑RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】
那个是ASCII码的格式,你需要做一下转换处理。:DRE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】
楼主用的什么gprs模块啊?可能你的等待时间太短了,可适当延长些。还可以直接把TTY_BUFF的第六位用串口发出来看看。
RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】
还可以用先查找冒号:再查找逗号,然后提取它们中间部分的方法。RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】
他已经获取到了。但是处理的方式不对,获取到的是ascii码,需要转换为十六进制。
页:
[1]