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

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

[复制链接]
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码的格式,你需要做一下转换处理。
zoozo 回答时间:2012-12-3 13:46:45

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

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

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

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

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

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

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版