GSM模块AT命令后,接收返回数据问题(求助)
最近用到手机模块AT命令,发送AT后,返回数据“OK”,接收。(这里返回值OK关掉回显后,16进制显示,
“0D 0A 'O' 'K' 0D 0A”)一共6位数据。
现在的问题是,第一次发了AT
1.单片机串口接收6位返回数据,延时,然后再发AT,再接收没问题。
2.单片机串口接收5位(小于6)返回数据,延时,然后再发AT,再接收数据就不正确了。
这样的话,发送的所有AT命令的话,都得完全接收,再执行下一条AT命令,才能正确接收。(有些AT命令的返回值,很长,而且未知,也没有结束位可以判断)
这个问题有没有什么方法可以解决啊!!!!????
纠结啊,请教高手了,拜托!!!!
[解决办法]
用超时处理接收
记得在用SIM300C的时候,虽然期间的执行过程不确定,但是,只要是返回数据,数据不会中断停止
在接收的时候就不用长度来作为接收处理,而用超时的方法,即足够长的时间里没有数据的话才认为数据通信结束