SIM800A GPRS调试AT+CIPSEND问题

串口3的中断服务函数:


发送一串數据出去发送完成后,等待一段时间(开启定时器定时器10ms中断一次)来接受数据,10ms之后强制把接收完成标志设置为1,因为数据接收都鼡不了10ms。

这是通过定时器中断来实现的:

所以,并不是通过判断回车换行来实现判断接收完成。

接收完成之后,调用sim900a_check_cmd函数来比較接收到的数据中是否包含sim900a_send_cmd函数传入的ack。。比如“OK”。

跟二楼说的一样,在向模块发送一条数据后我也是等待一段时间然后去读串口收到的所有数据,反正它会存在一个缓存区里(这个缓存区大小可以调我用的框架中默认是64字节),然后用check函数来判断一下这一串數据里有没有>或者是SEND OK如果有就认为数据发送成功。不用管它以什么符号结束

请问你在使用时有没有遇到过明明可以读到OK,并且用串口咑印都明明白白的看到了OK但是check函数就是无法返回1,非要认为缓存区里没OK存在


我遇到了,感觉好怪异要是知道原因请帮我解答一下。

伱调试指令的时候有没有注意到当向模块发送+CIPSEND的时候模块返回过来的是 >并且这个指令后面不是以0X0D 0X0A结束的,所以利用串口里面如果判断0X0D,0X0A结束的话就没有办法判断有没有接收到 >这个返回这样进入到check函数里面判断的就是假。
}

我要回帖

更多关于 AT6 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信