我正在通过西门子MC55 gsm调制解调器(DCE)与Verifone Nurit8320(DTE)的服务器进行通信。 我通过UART传递AT命令,向西门子MC55 gsm调制解调器(DCE)发出命令。
我在每个AT命令之间给出了100 ms(必需)的延迟,并且在发送任何命令之前我正在刷新DTE的UART。
现在的问题是
在许多情况下,DCE正在响应先前执行的AT命令的响应。 DCE UART永远不会刷新。
在哪里可以获取AT命令集,以便我可以刷新DCE的UART缓冲区?
答案 0 :(得分:1)
您要解决的问题(刷新DCE UART)是一个错误的问题,因为它是AT命令通信中不存在的问题。
向DCE发送AT命令后,必须读取作为DCE响应发回的每个字符,并解析文本,直到收到最终结果代码(例如OK
,ERROR
以及其他一些),然后才能发送下一个AT命令。任何其他方式注定会带来无穷无尽的问题列表,永远不会,永远不会可靠地工作。
有关AT命令发送/解析应该如何的概述,请参阅this answer 看起来像。永远不应该使用固定的时间延迟;它会中止命令,或者在最好的情况下浪费时间,同时等待不必要的长时间,同时从不消除等待中止的风险。有关AT命令中止的更多信息,请参阅this answer。