学习原子哥的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不是先返回的?是我理解错了吗,谢谢!
AT+CGMI
SIMCOM_Ltd
OK
也就是在收到的字符串的' '之后判断是否有接收到' '
用串口调试助手测试下 就知道了
一周热门 更多>