关于AT指令的返回疑问

2019-07-21 05:29发布

学习原子哥的SIM900A例程,看到这句:  if(sim900a_send_cmd("AT+CGMI","OK",200)==0)    //查询制造商名称
 {
  p1=(u8*)strstr((const char*)(USART2_RX_BUF+2)," ");
  p1[0]=0;//加入结束符
  sprintf((char*)p,"制造商:%s",USART2_RX_BUF+2);
  Show_Str(x,y+110,200,16,p,16,0);
  USART2_RX_STA=0;  
 } 这个USART2_RX_BUF是用来存储SIM900A返回数据的,为什么这边需要“+2”,是不是会先返回一个“OK”,把这个OK屏蔽掉,但是我看在电脑穿透调试的时候是OK不是先返回的?是我理解错了吗,谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
login_FAE
1楼-- · 2019-07-21 07:20
实际是:
AT+CGMI

SIMCOM_Ltd

OK
也就是在收到的字符串的' '之后判断是否有接收到' '
用串口调试助手测试下  就知道了
善良的二哥
2楼-- · 2019-07-21 08:36
 精彩回答 2  元偷偷看……
王维峰
3楼-- · 2019-07-21 10:43
善良的二哥 发表于 2015-10-10 14:27
回复【2楼】login_FAE:
---------------------------------
请问你的意思是不是受到的实际字符串应该是下面 ...

两个字节,
p1[0]=0;只屏蔽一个字节

一周热门 更多>