我正在通过西门子MC55 gsm调制解调器与来自Verifone Nurit8320(DTE)的服务器进行通信。我通过UART传递AT命令给西门子MC55 gsm调制解调器(DCE)。
在每个AT命令之间,我已经延迟了100 ms (必需),在发送任何命令之前,我正在冲洗DTE的UART。
现在的问题是这个
在许多情况下,DCE是使用先前执行的AT命令的响应来响应的。DCE UART从来没有被冲过。
在哪里可以获得AT命令集,以便刷新DCE的UART缓冲区?
发布于 2013-11-20 17:33:28
您要解决的问题(冲洗DCE UART)是要关注的错误问题,因为AT命令通信中不存在这个问题。
在向DCE发送AT命令后,必须读取作为DCE响应而发送的每个字符,并解析文本,直到收到最终结果代码(例如OK、ERROR和其他几个字符),然后才能发送下一个AT命令。任何其他方式都注定会带来无数的问题,永远不会,永远,永远也不会可靠。
有关AT命令发送/解析应该是什么样子的概述,请参见this answer。永远不应该使用固定的时间延迟;它将中止命令,或者在最好的情况下,在不必要地等待很长时间的情况下浪费时间,而在等待的情况下也不会消除中止的风险。有关AT命令的堕胎的更多信息,请参见this answer。
https://stackoverflow.com/questions/19830198
复制相似问题