你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】

[复制链接]
9-404440 提问时间:2012-11-29 11:46 /
我要实现的功能是我给GPRS模块发送一个AT+CSQ指令然后模块会返回一个值例如 +CSQ: 28,0
我要取出整型的28和0
我有问题的代码如下
void Get_CSQ(char *pCSQ)
{
 char tmp[2];
 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_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'};
 
谁能说说怎么回事或者谁有更好的取法 谢谢!
 
收藏 评论5 发布时间:2012-11-29 11:46

举报

5个回答
xieyuanfu 回答时间:2012-11-30 16:57:22

RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】

你先把结果 用串口通信软件 在电脑上面显示看看 正确不正确 再考虑
zykzyk-93033 回答时间:2012-12-1 00:12:28

RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】

那个是ASCII码的格式,你需要做一下转换处理。
ImCQ 回答时间:2012-12-3 13:46:45

RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】

楼主用的什么gprs模块啊?可能你的等待时间太短了,可适当延长些。
还可以直接把TTY_BUFF的第六位用串口发出来看看。
ImCQ 回答时间:2012-12-3 13:49:12

RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】

还可以用先查找冒号:再查找逗号,然后提取它们中间部分的方法。
回答时间:2012-12-4 16:50:32

RE:求各位大神来看看我的代码!求解决一个棘手问题 【悬赏问答】

他已经获取到了。但是处理的方式不对,获取到的是ascii码,需要转换为十六进制。

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版